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 amostra envia uma solicitação a uma API pública e retorna a resposta dela.

Para conferir 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 do Google Cloud.

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a CLI do Google Cloud.
  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. Instale a CLI do Google Cloud.
  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  9. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  10. Ative a API Workflows.

    gcloud services enable workflows.googleapis.com
  11. Crie e dê um nome à conta de serviço, como sa-name.
    gcloud iam service-accounts create sa-name
  12. 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 da conta de serviço, consulte Conceder permissão a um fluxo de trabalho para acessar os recursos do Google Cloud.

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 do Google Cloud para criar um termo de pesquisa, que é transmitido para a API 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 de arquivo do 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 seu termo de pesquisa (por exemplo, {"searchTerm":"North"}). Se você digitar {}, seu local do Google Cloud será 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 sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses 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