Usando CloudWatch Logs para registrar o histórico de execução em Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando CloudWatch Logs para registrar o histórico de execução em Step Functions

Os fluxos de trabalho padrão registram o histórico de execução em AWS Step Functions, embora você possa, opcionalmente, configurar o registro no Amazon CloudWatch Logs.

Diferentemente dos fluxos de trabalho padrão, os fluxos de trabalho expressos não registram o histórico de execução no AWS Step Functions. Para ver o histórico de execução e os resultados de um fluxo de trabalho expresso, você deve configurar o registro no Amazon CloudWatch Logs. A publicação de logs não bloqueia nem diminui as execuções.

nota

Quando você configura o registro, CloudWatch as cobranças de registros serão aplicadas e você será cobrado de acordo com a taxa de registros vendidos. Para obter mais informações, consulte Vended Logs na guia Logs na página CloudWatch de preços.

Configurar registro em log da

Quando você cria um fluxo de trabalho padrão usando o console Step Functions, essa máquina de estado não será configurada para enviar CloudWatch registros para o Logs. Quando você cria um Express Workflow usando o console Step Functions, essa máquina de estado será configurada por padrão para enviar CloudWatch registros para o Logs.

Para fluxos de trabalho do Express, o Step Functions pode criar uma função com o necessário AWS Identity and Access Management (IAM) política para CloudWatch registros. Se você criar um fluxo de trabalho padrão ou um fluxo de trabalho expresso usando oAPI,CLI, ou AWS CloudFormation, Step Functions não habilitará o registro por padrão, e você precisará garantir que sua função tenha as permissões necessárias.

Para cada execução iniciada no console, o Step Functions fornece um link para CloudWatch Logs, configurado com o filtro correto para buscar eventos de log específicos para essa execução.

Opcionalmente, você pode configurar o gerenciamento do cliente AWS KMS chaves para criptografar seus registros. Consulte Criptografia de dados em repouso para obter detalhes e configurações de permissão.

Para configurar o registro, você pode passar o LoggingConfigurationparâmetro ao usar CreateStateMachineou UpdateStateMachine. Você pode analisar ainda mais seus dados no CloudWatch Logs usando o CloudWatch Logs Insights. Para obter mais informações, consulte Análise de dados de registro com o CloudWatch Logs Insights.

CloudWatch Registra cargas úteis

Eventos do histórico de execução podem conter propriedades de entrada ou saída nas definições. Se a entrada de escape ou a saída de escape enviada para o CloudWatch Logs exceder 248 KB, ela será truncada como resultado das cotas do Logs. CloudWatch

IAMPolíticas para registro em CloudWatch registros

Você também precisará configurar a IAM função de execução da sua máquina de estado para ter a permissão adequada para fazer login no CloudWatch Logs, conforme mostrado no exemplo a seguir.

IAMexemplo de política

O exemplo a seguir é de uma política que você pode utilizar para configurar as permissões. Conforme mostrado no exemplo a seguir, você precisa especificar * no Resource campo. CloudWatch APIações, como CreateLogDelivery e DescribeLogGroups, não oferecem suporte aos tipos de recursos definidos por Amazon CloudWatch Logs. Para obter mais informações, consulte Ações definidas por Amazon CloudWatch Logs.

  • Para obter mais informações sobre CloudWatch recursos, consulte CloudWatch Logs recursos e operações no Guia do CloudWatch usuário da Amazon.

  • Para obter informações sobre as permissões que você precisa configurar para enviar CloudWatch registros para o Logs, consulte Permissões do usuário na seção intitulada Registros enviados para CloudWatch Logs.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
Solução de problemas de registro de máquinas de estado em CloudWatch registros

Se sua máquina de estado não conseguir enviar CloudWatch registros para o Logs, tente as seguintes etapas:

  1. Verifique se a função de execução da sua máquina de estado tem permissão para se registrar no CloudWatch Logs.

    Ao chamar CreateStateMachinenossos UpdateStateMachineAPIendpoints, certifique-se de que a IAM função especificada no roleArn parâmetro forneça as permissões necessárias, mostradas no exemplo de IAM política anterior.

  2. Verifique se a política de recursos de CloudWatch registros não excede o limite de 5.120 caracteres.

    Se a política exceder o limite de caracteres, prefixe os nomes dos seus grupos de registros /aws/vendedlogs/states para conceder permissões às suas máquinas de estado e evitar o limite. Quando você cria um grupo de registros no console Step Functions, os nomes dos grupos de registros sugeridos já estão prefixados com/aws/vendedlogs/states. Para obter mais informações sobre as melhores práticas de registro, consulteCloudWatch Registra os limites de tamanho da política de recursos.

Níveis de log para eventos de execução do Step Functions

Os níveis de registro variam de ALL ERROR a FATAL a OFF a. Todos os tipos de eventos são registradosALL, nenhum tipo de evento é registrado quando definido como. OFF Para ERROR e FATAL, consulte a tabela a seguir.

Para obter mais informações sobre os dados de execução exibidos para as execuções do Fluxo de trabalho expressoo com base nesses Níveis de log, consulte Diferenças na experiência dos consoles Standard e Express.

Tipo de evento ALL ERROR FATAL OFF

ChoiceStateEntered

Registrado Não logado Não logado Não logado

ChoiceStateExited

Registrado Não logado Não logado Não logado

ExecutionAborted

Registrado Registrado Registrado Não logado

ExecutionFailed

Registrado Registrado Registrado Não logado

ExecutionStarted

Registrado Não logado Não logado Não logado

ExecutionSucceeded

Registrado Não logado Não logado Não logado

ExecutionTimedOut

Registrado Registrado Registrado Não logado

FailStateEntered

Registrado Registrado Não logado Não logado

LambdaFunctionFailed

Registrado Registrado Não logado Não logado
LambdaFunctionScheduled Registrado Não logado Não logado Não logado

LambdaFunctionScheduleFailed

Registrado Registrado Não logado Não logado

LambdaFunctionStarted

Registrado Não logado Não logado Não logado

LambdaFunctionStartFailed

Registrado Registrado Não logado Não logado

LambdaFunctionSucceeded

Registrado Não logado Não logado Não logado

LambdaFunctionTimedOut

Registrado Registrado Não logado Não logado

MapIterationAborted

Registrado Registrado Não logado Não logado

MapIterationFailed

Registrado Registrado Não logado Não logado

MapIterationStarted

Registrado Não logado Não logado Não logado

MapIterationSucceeded

Registrado Não logado Não logado Não logado

MapRunAborted

Registrado Registrado Não logado Não logado

MapRunFailed

Registrado Registrado Não logado Não logado

MapStateAborted

Registrado Registrado Não registrado Não registrado

MapStateEntered

Registrado Não registrado Não registrado Não registrado

MapStateExited

Registrado Não registrado Não registrado Não registrado

MapStateFailed

Registrado Registrado Não registrado Não registrado

MapStateStarted

Registrado Não registrado Não registrado Não registrado

MapStateSucceeded

Registrado Não registrado Não registrado Não registrado

ParallelStateAborted

Registrado Registrado Não registrado Não registrado

ParallelStateEntered

Registrado Não registrado Não registrado Não registrado

ParallelStateExited

Registrado Não registrado Não registrado Não registrado
ParallelStateFailed Registrado Registrado Não registrado Não registrado

ParallelStateStarted

Registrado Não registrado Não registrado Não registrado

ParallelStateSucceeded

Registrado Não registrado Não registrado Não registrado

PassStateEntered

Registrado Não registrado Não registrado Não registrado

PassStateExited

Registrado Não registrado Não registrado Não registrado

SucceedStateEntered

Registrado Não registrado Não registrado Não registrado

SucceedStateExited

Registrado Não registrado Não registrado Não registrado

TaskFailed

Registrado Registrado Não registrado Não registrado

TaskScheduled

Registrado Não registrado Não registrado Não registrado
TaskStarted Registrado Não registrado Não registrado Não registrado

TaskStartFailed

Registrado Registrado Não registrado Não registrado

TaskStateAborted

Registrado Registrado Não registrado Não registrado

TaskStateEntered

Registrado Não registrado Não registrado Não registrado
TaskStateExited Registrado Não registrado Não registrado Não registrado
TaskSubmitFailed Registrado Registrado Não registrado Não registrado
TaskSubmitted Registrado Não logado Não logado Não logado
TaskSucceeded Registrado Não logado Não logado Não logado
TaskTimedOut Registrado Registrado Não logado Não logado
WaitStateAborted Registrado Registrado Não logado Não logado
WaitStateEntered Registrado Não logado Não logado Não logado
WaitStateExited Registrado Não logado Não logado Não logado