Crie um fluxo de trabalho através da CLI gcloud

Este início rápido mostra como criar, implementar e executar o seu primeiro fluxo de trabalho com a CLI Google Cloud. O fluxo de trabalho de exemplo envia um pedido a uma API pública e, em seguida, devolve a resposta da API.

Para ver 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 a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito.

  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 estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a 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 estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a 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 a conta de serviço e atribua-lhe um nome; por exemplo, sa-name.
    gcloud iam service-accounts create sa-name
  14. Para enviar registos para o Cloud Logging, conceda a função 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 as funções e as autorizações da conta de serviço, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.

  15. Crie, implemente e execute um fluxo de trabalho

    1. No seu diretório inicial, crie um novo ficheiro denominado myFirstWorkflow.yaml ou myFirstWorkflow.json.

    2. Copie e cole o seguinte fluxo de trabalho no novo ficheiro e, em seguida, guarde-o:

      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 introduza o seu próprio termo de pesquisa, este fluxo de trabalho usa a sua localização para criar um termo de pesquisa, que transmite à API Wikipedia.Google Cloud É devolvida uma lista de artigos da Wikipédia relacionados.

    3. Implemente 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 o seguinte:

      • EXTENSION: a extensão do ficheiro para o seu fluxo de trabalho; use yaml para a versão YAML ou json para a versão JSON
      • PROJECT_ID: o ID do seu 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 introduzir {}, a sua Google Cloud localização é usada para criar um termo de pesquisa.

      Isto devolve os resultados da tentativa de execução. O resultado é semelhante ao seguinte:

      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
      

    Implementou e executou o seu primeiro fluxo de trabalho!

    Limpar

    Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.

    1. Elimine o fluxo de trabalho que criou:

      gcloud workflows delete myFirstWorkflow
      
    2. Quando lhe for perguntado se quer continuar, introduza y.

    O fluxo de trabalho é eliminado.

    O que se segue?