Criar um fluxo de trabalho usando a CLI gcloud

Neste guia de início rápido, mostramos como criar, implantar e executar seu primeiro fluxo de trabalho usando a Google Cloud CLI. O fluxo de trabalho de exemplo envia uma solicitação para uma API pública e retorna a resposta da API.

Para uma lista de todos os comandos da CLI gcloud do Workflows, consulte a página de referência da CLI gcloud do Workflows.

Antes de começar

As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito de Google Cloud .

  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 você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte 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 você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

  9. Para inicializar a CLI gcloud, execute o seguinte 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. Ative a API Workflows.

    gcloud services enable workflows.googleapis.com
  13. Crie e dê um nome à conta de serviço, como sa-name.
    gcloud iam service-accounts create sa-name
  14. Para enviar registros ao Cloud Logging, conceda o papel roles/logging.logWriter à conta de serviço.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"

    Para saber mais sobre papéis e permissões de conta de serviço, consulte Conceder uma permissão de fluxo de trabalho para acessar recursos doGoogle Cloud .

  15. Criar, implantar e executar um fluxo de trabalho

    1. No diretório inicial, crie um novo arquivo chamado myFirstWorkflow.yaml ou myFirstWorkflow.json.

    2. Copie e cole o seguinte fluxo de trabalho no novo arquivo e salve:

      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 menos que você insira seu próprio termo de pesquisa, esse fluxo de trabalho usa seu local doGoogle Cloud para criar um termo de pesquisa, que é transmitido para a API da Wikipédia. Uma lista de artigos relacionados da Wikipédia é retornada.

    3. Implante o fluxo de trabalho e associe-o à conta de serviço especificada:

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

      Substitua:

      • EXTENSION: a extensão do arquivo do seu fluxo de trabalho. Use yaml para a versão YAML ou json para a versão JSON.
      • PROJECT_ID: ID do projeto;
    4. Execute o fluxo de trabalho:

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

      Substitua SEARCH_TERM pelo termo de pesquisa, por exemplo, {"searchTerm":"North"}. Se você inserir {}, seu local do Google Cloudserá usado para criar um termo de pesquisa.

      Isso retorna os resultados da tentativa de execução. O resultado será assim:

      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
      

    Você implantou e executou seu primeiro fluxo de trabalho.

    Limpar

    Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com os recursos.

    1. Exclua o fluxo de trabalho que você criou:

      gcloud workflows delete myFirstWorkflow
      
    2. Quando for perguntado se você quer continuar, digite y:

    O fluxo de trabalho será excluído.

    A seguir