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 CLI do Google Cloud. O fluxo de trabalho de amostra 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 do 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. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Install the Google Cloud CLI.
  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. 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.

  9. Make sure that billing is enabled for your Google Cloud project.

  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 os papéis e as permissões da conta de serviço, consulte Conceder permissão a um fluxo de trabalho para acessar 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 fluxo de trabalho a seguir 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 será 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 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 Google Cloud local é usado para construir 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