Create a workflow by using the gcloud CLI

This quickstart shows you how to create, deploy, and execute your first workflow using the Google Cloud CLI. The sample workflow sends a request to a public API and then returns the API's response.

For a list of all Workflows gcloud CLI commands, see the Workflows gcloud CLI reference page .

Before you begin

Security constraints defined by your organization might prevent you from completing the following steps. For troubleshooting information, see Develop applications in a constrained Google Cloud environment .

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity .

  4. To initialize the gcloud CLI, run the following command:

    gcloud  
    init
  5. Create or select a Google Cloud project .

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID 
      

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID 
      

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project .

  7. Install the Google Cloud CLI.

  8. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity .

  9. To initialize the gcloud CLI, run the following command:

    gcloud  
    init
  10. Create or select a Google Cloud project .

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID 
      

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID 
      

      Replace PROJECT_ID with your Google Cloud project name.

  11. Verify that billing is enabled for your Google Cloud project .

  12. Enable the Workflows API.

    gcloud  
    services  
     enable 
      
    workflows.googleapis.com
  13. Create the service account and give it a name; for example, sa-name .
    gcloud  
    iam  
    service-accounts  
    create  
    sa-name
  14. To send logs to Cloud Logging, grant the roles/logging.logWriter role to the service account.
    gcloud  
    projects  
    add-iam-policy-binding  
     PROJECT_ID 
      
     \ 
      
    --member  
     "serviceAccount:sa-name@ PROJECT_ID 
    .iam.gserviceaccount.com" 
      
     \ 
      
    --role  
     "roles/logging.logWriter" 
    

    To learn more about service account roles and permissions, see Grant a workflow permission to access Google Cloud resources .

Create, deploy, and execute a workflow

  1. In your home directory, create a new file called myFirstWorkflow.yaml or myFirstWorkflow.json .

  2. Copy and paste the following workflow into the new file, then save it:

    YAML

      main 
     : 
      
     params 
     : 
      
     [ 
     input 
     ] 
      
     steps 
     : 
      
     - 
      
     checkSearchTermInInput 
     : 
      
     switch 
     : 
      
     - 
      
     condition 
     : 
      
     '${"searchTerm" 
      
     in 
      
     input}' 
      
     assign 
     : 
      
     - 
      
     searchTerm 
     : 
      
     '${input.searchTerm}' 
      
     next 
     : 
      
     readWikipedia 
      
     - 
      
     getLocation 
     : 
      
     call 
     : 
      
     sys.get_env 
      
     args 
     : 
      
     name 
     : 
      
     GOOGLE_CLOUD_LOCATION 
      
     result 
     : 
      
     location 
      
     - 
      
     setFromCallResult 
     : 
      
     assign 
     : 
      
     - 
      
     searchTerm 
     : 
      
     '${text.split(location, 
      
     "-")[0]}' 
      
     - 
      
     readWikipedia 
     : 
      
     call 
     : 
      
     http.get 
      
     args 
     : 
      
     url 
     : 
      
     'https://en.wikipedia.org/w/api.php' 
      
     query 
     : 
      
     action 
     : 
      
     opensearch 
      
     search 
     : 
      
     '${searchTerm}' 
      
     result 
     : 
      
     wikiResult 
      
     - 
      
     returnOutput 
     : 
      
     return 
     : 
      
     '${wikiResult.body[1]}' 
     
    

    JSON

      { 
      
     "main" 
     : 
      
     { 
      
     "params" 
     : 
      
     [ 
      
     "input" 
      
     ], 
      
     "steps" 
     : 
      
     [ 
      
     { 
      
     "checkSearchTermInInput" 
     : 
      
     { 
      
     "switch" 
     : 
      
     [ 
      
     { 
      
     "condition" 
     : 
      
     "${\"searchTerm\" in input}" 
     , 
      
     "assign" 
     : 
      
     [ 
      
     { 
      
     "searchTerm" 
     : 
      
     "${input.searchTerm}" 
      
     } 
      
     ], 
      
     "next" 
     : 
      
     "readWikipedia" 
      
     } 
      
     ] 
      
     } 
      
     }, 
      
     { 
      
     "getLocation" 
     : 
      
     { 
      
     "call" 
     : 
      
     "sys.get_env" 
     , 
      
     "args" 
     : 
      
     { 
      
     "name" 
     : 
      
     "GOOGLE_CLOUD_LOCATION" 
      
     }, 
      
     "result" 
     : 
      
     "location" 
      
     } 
      
     }, 
      
     { 
      
     "setFromCallResult" 
     : 
      
     { 
      
     "assign" 
     : 
      
     [ 
      
     { 
      
     "searchTerm" 
     : 
      
     "${text.split(location, \"-\")[0]}" 
      
     } 
      
     ] 
      
     } 
      
     }, 
      
     { 
      
     "readWikipedia" 
     : 
      
     { 
      
     "call" 
     : 
      
     "http.get" 
     , 
      
     "args" 
     : 
      
     { 
      
     "url" 
     : 
      
     "https://en.wikipedia.org/w/api.php" 
     , 
      
     "query" 
     : 
      
     { 
      
     "action" 
     : 
      
     "opensearch" 
     , 
      
     "search" 
     : 
      
     "${searchTerm}" 
      
     } 
      
     }, 
      
     "result" 
     : 
      
     "wikiResult" 
      
     } 
      
     }, 
      
     { 
      
     "returnOutput" 
     : 
      
     { 
      
     "return" 
     : 
      
     "${wikiResult.body[1]}" 
      
     } 
      
     } 
      
     ] 
      
     } 
     } 
     
    

    Unless you input your own search term, this workflow uses your Google Cloud location to construct a search term, which it passes to the Wikipedia API . A list of related Wikipedia articles is returned.

  3. Deploy the workflow and associate it with the specified service account:

     gcloud  
    workflows  
    deploy  
    myFirstWorkflow  
    --source = 
    myFirstWorkflow. EXTENSION 
      
     \ 
      
    --service-account = 
    sa-name@ PROJECT_ID 
    .iam.gserviceaccount.com 
    

    Replace the following:

    • EXTENSION : the file extension for your workflow; use yaml for the YAML version or use json for the JSON version
    • PROJECT_ID : your project ID
  4. Execute the workflow:

     gcloud  
    workflows  
    run  
    myFirstWorkflow  
     \ 
      
    --data = 
     ' SEARCH_TERM 
    ' 
     
    

    Replace SEARCH_TERM with your search term; for example, {"searchTerm":"North"} . If you enter {} , your Google Cloud location is used to construct a search term.

    This returns the results of the execution attempt. The output is similar to the following:

     argument: '{"searchTerm":"North"}'
    duration: 0.210616856s
    endTime: '2023-05-10T21:56:39.465899376Z'
    name: projects/734581694262/locations/us-central1/workflows/workflow-1/executions/eae31f11-a5c3-47e2-8014-05b400820a79
    result: '["North","North America","Northern Ireland","North Korea","North Macedonia","North
      Carolina","Northrop Grumman B-2 Spirit","Northrop F-5","Northern Cyprus","North
      Dakota"]'
    startTime: '2023-05-10T21:56:39.255282520Z'
    state: SUCCEEDED
    status:
      currentSteps:
      - routine: main
        step: returnOutput
    workflowRevisionId: 000001-ac2 
    

You've deployed and executed your first workflow!

Clean up

To avoid incurring charges to your Google Cloud account for the resources used on this page, delete the Google Cloud project with the resources.

  1. Delete the workflow you created:

     gcloud  
    workflows  
    delete  
    myFirstWorkflow 
    
  2. When asked if you want to continue, enter y .

The workflow is deleted.

What's next

Design a Mobile Site
View Site in Mobile | Classic
Share by: