Crea un flusso di lavoro utilizzando gcloud CLI

Questa guida rapida mostra come creare, eseguire il deployment ed eseguire il tuo primo flusso di lavoro utilizzando Google Cloud CLI. Il flusso di lavoro di esempio invia una richiesta a un'API pubblica e poi restituisce la risposta dell'API.

Per un elenco di tutti i comandi gcloud CLI per i flussi, consulta la pagina di riferimento di gcloud CLI per i flussi.

Prima di iniziare

I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.

  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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  9. Per inizializzare gcloud CLI, esegui questo comando:

    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. Abilita l'API Flows.

    gcloud services enable workflows.googleapis.com
  13. Crea il account di servizio e assegnagli un nome, ad esempio sa-name.
    gcloud iam service-accounts create sa-name
  14. Per inviare i log a Cloud Logging, concedi il ruolo roles/logging.logWriter all'account di servizio.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"

    Per scoprire di più sui ruoli e sulle autorizzazioni dei account di servizio, consulta Concedi l'autorizzazione dei workflow per l'accesso alle Google Cloud risorse.

  15. Crea, esegui il deployment ed esegui un flusso di lavoro

    1. Nella tua home directory, crea un nuovo file denominato myFirstWorkflow.yaml o myFirstWorkflow.json.

    2. Copia e incolla il seguente flusso di lavoro nel nuovo file, quindi salvalo:

      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]}"
              }
            }
          ]
        }
      }
      

      A meno che non inserisci un termine di ricerca personalizzato, questo workflow utilizza la tua posizione diGoogle Cloud per creare un termine di ricerca, che viene trasmesso all'API Wikipedia. Viene restituito un elenco di articoli correlati di Wikipedia.

    3. Esegui il deployment del flusso di lavoro e associalo al account di servizio specificato:

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

      Sostituisci quanto segue:

      • EXTENSION: l'estensione del file del flusso di lavoro; utilizza yaml per la versione YAML o json per la versione JSON
      • PROJECT_ID: il tuo ID progetto
    4. Esegui il flusso di lavoro:

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

      Sostituisci SEARCH_TERM con il termine di ricerca, ad esempio {"searchTerm":"North"}. Se inserisci {}, la tua posizione di Google Cloudviene utilizzata per creare un termine di ricerca.

      Restituisce i risultati del tentativo di esecuzione. L'output è simile al seguente:

      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
      

    Hai eseguito il deployment e l'esecuzione del tuo primo flusso di lavoro.

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

    1. Elimina il flusso di lavoro creato:

      gcloud workflows delete myFirstWorkflow
      
    2. Quando ti viene chiesto se vuoi continuare, digita y.

    Il flusso di lavoro viene eliminato.

    Passaggi successivi