Depois de executar um fluxo de trabalho, é possível acessar os resultados da execução no console do Google Cloud ou usando a Google Cloud CLI.
Console
No console do Google Cloud, abra a página Workflows.
Para acessar os resultados da execução de um fluxo de trabalho, clique no nome dele para acessar a página Detalhes do fluxo de trabalho.
Para detalhes sobre uma execução específica, na guia Executions, clique no ID da execução na lista para acessar a página Execution details.
Na guia Resumo, cada execução tem as seguintes informações:
- ID da execução: o identificador exclusivo da execução do fluxo de trabalho.
- Estado de execução: indica o estado final do fluxo de trabalho, incluindo a etapa atual ou final do fluxo de trabalho.
- Execução criada: quando a execução foi iniciada.
- Início da execução: quando a execução começou a ser executada e a executar etapas.
- Fim da execução: quando a execução foi finalizada.
- Duração da execução: tempo total decorrido. Isso pode ser uma indicação de erros de rede ou problemas de conectividade.
- Nome do fluxo de trabalho: o nome do fluxo de trabalho.
- Revisão do fluxo de trabalho: a revisão atual no momento da execução.
- Nível de registro de chamadas: o nível de registro de chamadas aplicado durante a execução. Para mais informações, consulte Registro de chamadas.
- Entrada: os argumentos de ambiente de execução transmitidos para o fluxo de trabalho, se houver.
- Saída: a saída do fluxo de trabalho. Se a execução falhou, inclui a exceção que levou à falha. Neste documento, consulte Mapas de erros de execução.
Para conferir o histórico de execução do fluxo de trabalho como uma lista de entradas de etapas, clique na guia Etapas. Para mais informações, consulte Consultar o histórico das etapas de execução.
Para conferir os registros de uma execução de fluxo de trabalho, clique na guia Registros.
Para filtrar os registros de execução, use o campo Filtro na parte superior da tabela. Por exemplo, para exibir apenas tentativas de execução malsucedidas, insira
failed
no campo de texto do filtro.
gcloud
Para ver uma lista completa das execuções de um fluxo de trabalho, digite o seguinte comando:
gcloud workflows executions list WORKFLOW_NAME
Substitua
WORKFLOW_NAME
pelo nome do fluxo de trabalho. Copie o ID de execução do seu interesse.Para ver os registros de execução de um fluxo de trabalho, digite o seguinte comando:
gcloud workflows executions describe \ --workflow=WORKFLOW_NAME \ EXECUTION_ID
Substitua:
WORKFLOW_NAME
: o nome do fluxo de trabalhoEXECUTION_ID
: o ID exclusivo da execução
Esse comando retorna um resultado semelhante a este:
argument: 'null' endTime: '2022-07-19T12:40:07.070039707Z' error: context: |- The argument of 'in' must be a dict or an array; got: null in step "checkSearchTermInInput", routine "main", line: 12 payload: "{"message":"The argument of 'in' must be a dict or an array; got: null"
,"tags":["TypeError"]}" stackTrace: elements: - position: column: '26' length: '24' line: '12' routine: main step: checkSearchTermInInput name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/17ffc89c-0a27-4d2f-8356-e681d949a3d3 startTime: '2022-07-19T12:40:07.024823663Z' state: FAILED status: currentSteps: - routine: main step: checkSearchTermInInput workflowRevisionId: 000001-ac2argument
: os argumentos de ambiente de execução transmitidos para o fluxo de trabalho, se houverendTime
: quando a execução foi finalizadaerror
: a mensagem de erro gerada como parte da exceção que resultou na falha da execuçãoname
: o nome completo da execução, incluindo o nome do projeto, o local do fluxo de trabalho, o nome do fluxo de trabalho e o ID da execuçãostartTime
: quando a execução começoustate
: indica o estado final do fluxo de trabalhostatus
: a etapa atual ou final do fluxo de trabalho da execuçãoworkflowRevisionID
: a revisão atual no momento da execução
Mapas de erros de execução
Quando um fluxo de trabalho gera um erro durante a execução que não é capturado em um
bloco try/except
, a
execução falha e um mapa de erros (um dicionário JSON) que descreve o erro é
retornado.
Os erros gerados durante a execução do fluxo de trabalho contêm tags para ajudar a identificar
o que causou o erro. Por exemplo, o erro retornado de um conector pode ter duas
chaves (tags
e message
) semelhantes a estas:
{'tags': ['SystemError'], 'message': 'an error has occurred'}
É possível ter mais de uma tag. Para verificar uma tag específica, use uma expressão. Exemplo:
${'SystemError' in e.tags}
Acessar dados de erro retornados como uma string
Alguns conectores e APIs HTTP serializam erros como strings antes de retornar
os erros. É possível usar funções de biblioteca padrão para restaurar um payload ao
erro original. Por exemplo, para converter uma string de erro em um mapa, use
as funções json.decode
e text.encode
:
json.decode(text.encode(ERROR_FROM_API))
Tags de erro
A tabela a seguir descreve o significado de diferentes tags de erro.
Tag | Descrição |
---|---|
AuthError | Surge ao gerar credenciais para uma solicitação HTTP. |
ConnectionError | Gerado quando uma conexão é estabelecida com o endpoint, mas há um problema com a conexão durante a transferência de dados. A conexão é encerrada antes do recebimento de uma resposta completa, e uma mensagem pode não ter sido entregue ao endpoint. As novas tentativas podem não ser idempotentes. |
ConnectionFailedError | Surge quando uma conexão não é estabelecida com o endpoint de API. Por exemplo, devido a um nome de domínio incorreto, problemas de resolução de DNS ou outros problemas de rede. As novas tentativas são idempotentes. |
HttpError | Surge quando uma
solicitação HTTP falha
com um status de erro HTTP. Quando essa exceção é gerada, a
resposta é um mapa com os seguintes elementos:
|
IndexError | Surge quando um subscrito de sequência é um número inteiro fora do intervalo. |
KeyError | Surge quando uma chave de mapa não é encontrada no conjunto de chaves atuais. |
OperationError | Gerado quando uma operação de longa duração é concluída sem sucesso. |
ParallelNestingError | É gerada quando a profundidade máxima em que as etapas paralelas podem ser aninhadas é excedida. |
RecursionError | Surge quando o intérprete detecta que a profundidade máxima da pilha de chamadas foi excedida. |
ResourceLimitError | Surge quando algum limite de recurso é esgotado. Quando gerado internamente, esse tipo de erro não pode ser capturado e causa falha de execução imediata. |
ResponseTypeError | É gerada quando uma operação de longa duração retorna uma resposta do tipo errado. |
SystemError | Surge quando o intérprete encontra um erro interno. |
TimeoutError | Surge quando uma função do sistema atinge o tempo limite no nível do sistema. |
TypeError | Surge quando uma operação ou função é aplicada a um objeto de tipo incompatível. O valor associado é uma string que fornece detalhes sobre a incompatibilidade de tipos. |
UnhandledBranchError | É gerada quando uma ou mais ramificações ou iterações encontram um erro de execução não tratado até um número máximo. |
ValueError | Surge quando uma operação ou função recebe um argumento que tem o
tipo correto, mas um valor incorreto, e a situação não é descrita
por uma exceção mais precisa, como um IndexError . |
ZeroDivisionError | Surge quando o segundo argumento de uma divisão ou operação de módulo é zero. O valor associado é uma string que indica o tipo dos operandos e a operação. |
Também é possível gerar erros personalizados
usando a sintaxe raise
.
A seguir
- Visão geral da depuração
- Problemas conhecidos dos fluxos de trabalho
- Enviar registros de execução para o Cloud Logging
- Resolver problemas