Esta página foi traduzida pela API Cloud Translation.
Switch to English

Como transmitir argumentos de ambiente de execução em uma solicitação de execução

Nesta página, explicamos como transmitir argumentos de ambiente de execução em uma solicitação de execução de fluxo de trabalho e acessá-los usando variáveis de fluxo de trabalho.

Como configurar um fluxo de trabalho que recebe argumentos de tempo de execução

É possível criar fluxos de trabalho que usam argumentos de ambiente de execução transmitidos para eles como parte de uma solicitação de execução. Para configurar seu fluxo de trabalho para receber argumentos de ambiente de execução, faça o seguinte:

  1. Siga as etapas para criar um novo fluxo de trabalho ou escolha um fluxo de trabalho atual para atualizar, mas ainda não implante-o.

  2. Adicione um campo params à definição do fluxo de trabalho:

    main:
      params: [DICTIONARY_NAME]
      steps:
        ...
    

    Substitua DICTIONARY_NAME por um nome para o dicionário que armazena os nomes de parâmetro e valores de argumento que você passa para o fluxo de trabalho.

    Por exemplo, o seguinte fluxo de trabalho retorna uma saudação "Hello" para uma pessoa com nome e sobrenome passados como argumentos de ambiente de execução:

    main:
      params: [args]
      steps:
        - step1:
            assign:
              - OutputVar: ${"Hello, " + args.firstName + " " + args.lastName + "!"}
        - step2:
            return: ${OutputVar}
    
  3. Implante seu fluxo de trabalho para concluir a criação ou a atualização.

Como transmitir dados em uma solicitação de execução

Depois que o fluxo de trabalho estiver configurado para receber argumentos de ambiente de execução, é possível transmitir uma string no formato JSON, como {"firstName":"Workflows","lastName":"User"}, ao fluxo de trabalho em uma solicitação de execução:

gcloud

Adicione a sinalização --data ao comando gcloud workflows run que será usado para executar o fluxo de trabalho. Essa sinalização usa uma string JSON dos seus dados. Por exemplo, para transmitir um firstName e lastName ao fluxo de trabalho de exemplo anterior:

gcloud workflows run WORKFLOW_NAME \
--data='{"firstName":"FIRST","lastName":"LAST"}'

Substitua:

  • WORKFLOW_NAME: nome do fluxo de trabalho.
  • FIRST: a string que você quer transmitir para o fluxo de trabalho de firstName.
  • LAST: a string que você quer transmitir para o fluxo de trabalho de lastName.

Saída semelhante a estas telas:

Waiting for execution [EXECUTION_ID] to complete...done
.
argument: '{"firstName":"Workflows","lastName":"User"}'
endTime: '2020-11-18T23:28:36.134741660Z'
name: projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
result: '"Hello, Workflows User!"'
startTime: '2020-11-18T23:28:36.003269841Z'
state: SUCCEEDED
workflowRevisionId: 000001-ae2

Console

  1. Selecione o fluxo de trabalho que você quer executar na página "Fluxos de trabalho" do Console do Google Cloud:
    Acessar a página "Fluxos de trabalho"

  2. Na página de detalhes do fluxo de trabalho, clique em Executar.

  3. Na página "Executar fluxo de trabalho" exibida, insira uma string JSON contendo os nomes dos parâmetros e os valores dos argumentos, como {"firstName":"Workflows","lastName":"User"}, na área "Entrada":

    arearea de entrada preenchida com a string JSON de exemplo

  4. Clique em "Executar". O Console do Cloud exibe os resultados da execução:

    Resultados da execução, que mostram a saída "Hello, Workflows User!"

API REST

  1. Anexe a sinalização data ao comando usado para executar seu fluxo de trabalho. O valor de data é uma string formatada em JSON com um argumento cujo valor é um ou mais pares de valor de parâmetro com escape. Por exemplo, para transmitir um firstName e um lastName para o fluxo de trabalho de exemplo anterior:

    curl --request POST --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' --data '{"argument":"{\"firstName\":\"FIRST\",\"lastName\":\"LAST\"}"}' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions"
    

    Substitua:

    • PROJECT_ID: nome do projeto;
    • WORKFLOW_NAME: nome do fluxo de trabalho.
    • FIRST: a string que você quer transmitir para o fluxo de trabalho de firstName.
    • LAST: a string que você quer transmitir para o fluxo de trabalho de lastName.

    Saída semelhante a estas telas:

    {
      "name": "projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID",
      "startTime": "2020-11-09T23:51:31.765761331Z",
      "state": "ACTIVE",
      "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
      "workflowRevisionId": "000001-08c"
    }
     ```
    
  2. Para ver os resultados da execução, execute o comando a seguir:

    curl --request GET --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID"
    

    Substitua EXECUTION_ID pelo ID da saída que o primeiro comando retornou.

    Essa saída contém linhas semelhantes às seguintes:

    "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
    "result": "\"Hello, Workflows User!\"",
    

Para mais informações sobre como executar um fluxo de trabalho usando a API REST, consulte Como executar um fluxo de trabalho.

A seguir