Quando um fluxo de trabalho é executado, a definição atual associada a ele também é.
É possível transmitir argumentos de ambiente de execução em uma solicitação de execução de fluxo de trabalho e acessá-los usando uma variável de fluxo de trabalho. Para mais informações, consulte Transmitir argumentos de ambiente de execução em uma solicitação de execução.
Depois que uma execução de fluxo de trabalho é concluída, o histórico e os resultados dela são retidos por um tempo limitado. Para mais informações, consulte Cotas e limites.
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.
- 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.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Se um fluxo de trabalho acessar outros recursos do Google Cloud,
associadas a uma conta de serviço que tenha as permissões corretas para fazer isso.
Para saber qual conta de serviço está associada a um fluxo de trabalho atual, consulte
Confirme um
da conta de serviço associada ao fluxo de trabalho.
Para criar um recurso e anexar uma conta de serviço, permissões para criar esse recurso e personificar a conta de serviço que que você vai anexar ao recurso. Para mais informações, consulte Permissões da conta de serviço.
- Implantar um fluxo de trabalho usando a Console do Google Cloud ou a Google Cloud CLI.
Executar um fluxo de trabalho
É possível executar um fluxo de trabalho usando as bibliotecas de cliente no console do Google Cloud. usando a CLI gcloud ou enviando uma solicitação ao API REST Workflows.
Console
Para executar um fluxo de trabalho, no console do Google Cloud, acesse Página Fluxos de trabalho:
Na página Fluxos de trabalho, selecione um fluxo de trabalho para acessar o respectivo página de detalhes.
Na página Detalhes do fluxo de trabalho, clique em play_arrow Execução.
No painel Entrada da página Executar fluxo de trabalho, insira argumentos de ambiente de execução opcionais para transmitir ao fluxo de trabalho antes da execução. Os argumentos precisam estar no formato JSON, por exemplo,
{"animal":"cat"}
. Se o fluxo de trabalho não usa argumentos de ambiente de execução, deixe em branco.Opcionalmente, especifique o nível de registro de chamadas que você quer para aplicar à execução do fluxo de trabalho. Em Nível de registro de chamadas selecione uma das seguintes opções:
- Não especificado: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.
- Somente erros: registra todas as exceções identificadas; ou quando uma chamada é interrompida devido a uma exceção.
- Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
- Sem registros: nenhum registro de chamadas.
Clique em Executar.
Na página Detalhes da execução, é possível ver os resultados da execução, incluindo qualquer saída, o ID e o estado da execução, e a etapa atual ou final da execução do fluxo de trabalho. Para mais informações, ver Acesse os resultados da execução do fluxo de trabalho.
gcloud
Abra um terminal.
Encontre o nome do fluxo de trabalho que você quer executar. Se você não souber o nome dele, insira o seguinte comando para listar todos os fluxos de trabalho:
gcloud workflows list
É possível executar o fluxo de trabalho usando o o comando
gcloud workflows run
ou ogcloud workflows execute
comando:Executar o fluxo de trabalho e aguardar o fim da execução:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Executar o fluxo de trabalho sem aguardar o fim da execução:
gcloud workflows execute WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Substitua:
WORKFLOW_NAME
: o nome do fluxo de trabalho.CALL_LOGGING_LEVEL
(opcional): nível de registro de chamadas para aplicar durante a execução. Pode ser um dos seguintes:none
: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.log-errors-only
: registra todas as exceções identificadas. ou quando uma chamada é interrompida devido a uma exceção.log-all-calls
: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os resultados delas.log-none
: nenhum registro de chamadas.
DATA
(opcional): argumentos de ambiente de execução para seu fluxo de trabalho no formato JSON.
Se você executou
gcloud workflows execute
, o ID exclusivo da tentativa de execução do fluxo de trabalho é retornado e a saída é semelhante a esta:To view the workflow status, you can use following command: gcloud workflows executions describe b113b589-8eff-4968-b830-8d35696f0b33 --workflow workflow-2 --location us-central1
Para visualizar o status da execução, insira o comando retornado pela etapa anterior.
Se a tentativa de execução for bem-sucedida, a saída será semelhante à
a seguir, com um state
indicando o sucesso do fluxo de trabalho, e um status
que especifica a etapa final do fluxo de trabalho da execução.
argument: '{"searchTerm":"Friday"}' endTime: '2022-06-22T12:17:53.086073678Z' name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/c4dffd1f-13db-46a0-8a4a-ee39c144cb96 result: '["Friday","Friday the 13th (franchise)","Friday Night Lights (TV series)","Friday the 13th (1980 film)","Friday the 13th","Friday the 13th (2009 film)","Friday the 13th Part III","Friday the 13th Part 2","Friday (Rebecca Black song)","Friday Night Lights (film)"]' startTime: '2022-06-22T12:17:52.799387653Z' state: SUCCEEDED status: currentSteps: - routine: main step: returnOutput workflowRevisionId: 000001-ac2
Bibliotecas de cliente
Os exemplos a seguir pressupõem que você já implantou um fluxo de trabalho,
myFirstWorkflow
:
Instale a biblioteca de cliente e configure o ambiente de desenvolvimento. Para mais detalhes, consulte a Visão geral das bibliotecas de cliente do Workflows.
Clone o repositório do app de amostra na máquina local:
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Altere para o diretório que contém o código de amostra do Workflows:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Confira o código de amostra:
Java
Node.js (JavaScript)
Node.js (TypeScript)
Python
O exemplo faz o seguinte:
- Configura as bibliotecas de cliente do Cloud para o Workflows.
- Executa um fluxo de trabalho.
- Pesquisa a execução do fluxo de trabalho (usando espera exponencial) até que o é encerrada.
- Exibe os resultados da execução.
Para executar a amostra, primeiro instale as dependências:
Java
mvn compile
Node.js (JavaScript)
npm install
Node.js (TypeScript)
npm install && npm run build
Python
pip3 install -r requirements.txt
Execute o script:
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js (JavaScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Node.js (TypeScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Substitua:
PROJECT_ID
(obrigatório): o ID do projeto Projeto do Google CloudCLOUD_REGION
: o local do fluxo de trabalho. (padrão:us-central1
)WORKFLOW_NAME
: o ID do fluxo de trabalho. (padrão:myFirstWorkflow
)
O resultado será assim:
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
API REST
Para criar uma nova execução com a revisão mais recente de um determinado fluxo de trabalho, use
as
projects.locations.workflows.executions.create
.
Para fazer a autenticação, você precisará de uma conta de serviço com
para executar o fluxo de trabalho. Por exemplo, é possível conceder a um serviço
conta o papel Invocador do Workflows
(roles/workflows.invoker
) para que a conta tenha permissão para
acionarão a execução do fluxo de trabalho. Para mais informações, consulte
Invoque o Workflows.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_NUMBER
: seu Google Cloud de projeto listado no guia de gerenciamento Administrador Configurações.LOCATION
: o região em que o fluxo de trabalho é implantado, por exemplo,us-central1
.WORKFLOW_NAME
: o nome definido pelo usuário para o fluxo de trabalho, por exemplo,myFirstWorkflow
.PARAMETER
: opcional. Se o fluxo de trabalho que você está executando podem receber argumentos de tempo de execução que você o passa como parte de uma solicitação de execução, é possível adicionar ao corpo da solicitação uma string formatada em JSON com um ou mais valores de escape pares de parâmetro e valor, por exemplo,"{\"searchTerm\":\"asia\"}"
.VALUE
: opcional. O valor de um que o fluxo de trabalho pode receber como um argumento de ambiente de execução.CALL_LOGGING_LEVEL
: opcional. O nível de registro de chamadas a ser aplicado durante a execução. O padrão é que nenhum nível de registro seja especificado, e o nível de registro do fluxo de trabalho será aplicado. Para mais informações, consulte Enviar registros para o Logging. Um dos seguintes:CALL_LOG_LEVEL_UNSPECIFIED
: nenhum nível de geração de registros foi especificado, e o nível de registro do fluxo de trabalho será aplicado. Esse é o padrão. Caso contrário, o nível de registro de execução é aplicável e tem precedência sobre o nível de registro do fluxo de trabalho.LOG_ERRORS_ONLY
: registra todas as exceções capturadas. ou quando uma chamada é interrompida devido a uma exceção.LOG_ALL_CALLS
: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca. e os resultados.LOG_NONE
: nenhum registro de chamadas.
Corpo JSON da solicitação:
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL" }
Para enviar a solicitação, expanda uma destas opções:
Se a solicitação for bem-sucedida, o corpo da resposta incluirá uma instância recém-criada de Execution
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID", "startTime": "2023-11-07T14:35:27.215337069Z", "state": "ACTIVE", "argument": "{\"PARAMETER\":\"VALUE\"}", "workflowRevisionId": "000001-2df", "callLogLevel": "CALL_LOGGING_LEVEL", "status": {} }
Verificar o status das execuções
Há vários comandos para ajudar você a verificar o status de uma execução de fluxo de trabalho.
Para recuperar uma lista das tentativas de execução de um fluxo de trabalho e os respectivos IDs, digite o seguinte comando:
gcloud workflows executions list WORKFLOW_NAME
Substitua
WORKFLOW_NAME
pelo nome do fluxo de trabalho.O comando retorna um valor
NAME
semelhante ao seguinte:projects/PROJECT_NUMBER/locations/REGION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
Copie o ID de execução para usar no próximo comando.
Para verificar o status de uma tentativa de execução e aguardar ela ser concluída, digite o seguinte comando:
gcloud workflows executions wait EXECUTION_ID
Substitua
EXECUTION_ID
pelo ID da tentativa de execução.O comando aguarda a conclusão da tentativa de execução e, em seguida, retorna os resultados.
Para aguardar até que a última execução seja concluída e, em seguida, retornar o resultado do concluída, insira o seguinte comando:
gcloud workflows executions wait-last
Se você fez uma tentativa de execução anterior na mesma sessão
gcloud
, o aguarda a conclusão da tentativa de execução anterior e retorna os resultados da execução concluída. Se não houver tentativa anterior,gcloud
retorna o seguinte erro:ERROR: (gcloud.workflows.executions.wait-last) [NOT FOUND] There are no cached executions available.
Para obter o status da última execução, insira o seguinte comando:
gcloud workflows executions describe-last
Se você fez uma tentativa de execução anterior na mesma sessão
gcloud
, o retorna os resultados da última execução, mesmo que esteja em execução. Se não houver nenhuma tentativa anterior, ogcloud
retornará o seguinte erro:ERROR: (gcloud.beta.workflows.executions.describe-last) [NOT FOUND] There are no cached executions available.
Execuções de filtro
É possível aplicar filtros à lista de execuções de fluxo de trabalho retornadas pelo
método workflows.executions.list
.
É possível filtrar os seguintes campos:
duration
endTime
executionId
label
startTime
state
stepName
workflowRevisionId
Por exemplo, para filtrar um marcador (labels."fruit":"apple"
), você pode fazer uma
solicitação de API semelhante à seguinte:
GET https://workflowexecutions.googleapis.com/v1/projects/MY_PROJECT/locations/MY_LOCATION/workflows/MY_WORKFLOW/executions?view=full&filter=labels.%22fruit%22%3A%22apple%22"
Em que:
view=full
especifica uma visualização que define quais campos precisam ser preenchidos na execuções retornadas nesse caso, todos os dadoslabels.%22fruit%22%3A%22apple%22
é a sintaxe do filtro codificado pelo URL
Para mais informações, consulte Filtragem AIP-160.