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
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
-
Você pode determinar se um payload foi truncado revisando as propriedades
inputDetails
eoutputDetails
. Para ver mais informações, consulte o Tipo de dados deHistoryEventExecutionDataDetails
. -
Para fluxos de trabalho padrão, você pode ver o histórico completo de execução usando
GetExecutionHistory
. -
O
GetExecutionHistory
não está disponível para fluxos de trabalho expressos. Se você quiser ver a entrada e a saída completas, você pode usar o Amazon S3ARNs. Para obter mais informações, consulte Usando o Amazon S3 ARNs em vez de transmitir grandes cargas em Step Functions.
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:
-
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. -
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 |