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á.
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.
Ao contrário dos fluxos de trabalho padrão, os fluxos de trabalho expressos não registram o histórico de execuções 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 a política AWS Identity and Access Management (IAM) necessária para CloudWatch Logs. Se você criar um Fluxo de trabalho Padrão ou um Fluxo de trabalho expressoo usando a API, a CLI ou o AWS CloudFormation, o Step Functions não ativará o registro em log por padrão, e você precisará garantir que o perfil 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 AWS KMS chaves gerenciadas pelo cliente para criptografar seus registros. Consulte Criptografia de dados em repouso para examinar 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 KiB, 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 S3 ARNs. Para obter mais informações, consulte Usando o Amazon S3 ARNs em vez de transmitir grandes cargas em Step Functions.
Políticas do IAM para registro em CloudWatch registros
Você também precisará configurar a função IAM de execução da sua máquina de estado para ter a permissão adequada para fazer login nos CloudWatch registros, conforme mostrado no exemplo a seguir.
Exemplo de política do IAM
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 As ações de API, 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 endpoints de UpdateStateMachineAPI, certifique-se de que a função do IAM especificada no
roleArn
parâmetro forneça as permissões necessárias, mostradas no exemplo anterior da política do IAM. -
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, inclua nos nomes dos grupos de logs o prefixo
/aws/vendedlogs/states
para conceder permissões às máquinas de estado e evitar o limite. Quando você cria um grupo de logs no console do Step Functions, os nomes de grupos de logs sugeridos já têm o prefixo/aws/vendedlogs/states
. Para ter mais informações sobre práticas recomendadas de registro em log, consulte CloudWatch 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 log variam entre ALL
, ERROR
, FATAL
e OFF
. Todos os tipos de evento são registrados em log para ALL
, nenhum tipo de evento é registrado em log 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 do console padrão e expresso.
Tipo de evento | ALL |
ERROR |
FATAL |
OFF |
---|---|---|---|---|
ChoiceStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ChoiceStateExited |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ExecutionAborted |
Registrado em log | Registrado em log | Registrado em log | Não registrado em log |
ExecutionFailed |
Registrado em log | Registrado em log | Registrado em log | Não registrado em log |
ExecutionStarted |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ExecutionSucceeded |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ExecutionTimedOut |
Registrado em log | Registrado em log | Registrado em log | Não registrado em log |
FailStateEntered |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionScheduled | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionScheduleFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionStarted |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionStartFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionSucceeded |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
LambdaFunctionTimedOut |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapIterationAborted |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapIterationFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapIterationStarted |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
MapIterationSucceeded |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
MapRunAborted |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapRunFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapStateAborted |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
MapStateExited |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
MapStateFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
MapStateStarted |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
MapStateSucceeded |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ParallelStateAborted |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
ParallelStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ParallelStateExited |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ParallelStateFailed | Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
ParallelStateStarted |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
ParallelStateSucceeded |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
PassStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
PassStateExited |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
SucceedStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
SucceedStateExited |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
TaskScheduled |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskStarted | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskStartFailed |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
TaskStateAborted |
Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
TaskStateEntered |
Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskStateExited | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskSubmitFailed | Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
TaskSubmitted | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskSucceeded | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
TaskTimedOut | Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
WaitStateAborted | Registrado em log | Registrado em log | Não registrado em log | Não registrado em log |
WaitStateEntered | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |
WaitStateExited | Registrado em log | Não registrado em log | Não registrado em log | Não registrado em log |