

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
<a name="cw-logs"></a>

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.

**Garantias de entrega de logs**  
 CloudWatch Os Amazon Logs são entregues com base no melhor esforço. A integridade e pontualidade das entradas de log não são garantidas. Se você precisar de um histórico de fluxo de trabalho garantido em fluxos de trabalho expressos, recomendamos implementar etapas de fluxo de trabalho para registrar dados em um serviço de armazenamento de dados apropriado, como o Amazon DynamoDB. Como alternativa, você pode considerar usar **fluxos de trabalho padrão** para garantir o histórico de execução.

**Informações sobre preços**  
Quando você configura o registro, [CloudWatch as cobranças de registros](https://aws.amazon.com/cloudwatch/pricing) 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 o registro em log da
<a name="monitoring-logging-configure"></a>

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 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](encryption-at-rest.md) para examinar detalhes e configurações de permissão.

Para configurar o registro, você pode passar o [LoggingConfiguration](https://docs.aws.amazon.com/step-functions/latest/apireference/API_LoggingConfiguration.html)parâmetro ao usar [CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)ou [UpdateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_UpdateStateMachine.html). 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html).

## CloudWatch Registra cargas úteis
<a name="cloudwatch-payload"></a>

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` e `outputDetails`. Para ver mais informações, consulte o [Tipo de dados de `HistoryEventExecutionDataDetails`](https://docs.aws.amazon.com/step-functions/latest/apireference/API_HistoryEventExecutionDataDetails.html). 
+  Para fluxos de trabalho padrão, você pode ver o histórico completo de execução usando [https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html). 
+  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](sfn-best-practices.md#avoid-exec-failures). 

## Políticas do IAM para registro em CloudWatch registros
<a name="cloudwatch-iam-policy"></a>

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 **\$1** 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-resources-for-iam-policies). Para obter mais informações, consulte [Ações definidas pelo Amazon CloudWatch Logs](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-actions-as-permissions).
+ Para obter informações sobre CloudWatch recursos, consulte [CloudWatch Logsrecursos e operações](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format) no *Guia do CloudWatch usuário da Amazon*.
+ Para obter informações sobre as permissões que você precisa para configurar o envio de CloudWatch registros para o Logs, consulte [Permissões do usuário](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL) 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": "*"
        }
    ]
}
```

## Níveis de log para eventos de execução do Step Functions
<a name="cloudwatch-log-level"></a>

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](concepts-view-execution-details.md#console-exp-differences).


| 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 | 

## Solução de problemas de registro em CloudWatch registros
<a name="cloudwatch-log-troubleshooting"></a><a name="troubleshooting-logging-to-cloudwatch"></a>

Se sua máquina de estado não conseguir enviar CloudWatch registros para o Logs ou você receber o erro: "`AccessDeniedException : The state machine IAM Role is not authorized to access the Log Destination`“, 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 [CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)nossos endpoints de [UpdateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_UpdateStateMachine.html)API, 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.

1. 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 [Evitando limites de tamanho da política de CloudWatch recursos](sfn-best-practices.md#bp-cwl).

1. Verifique se o número de políticas de recursos de CloudWatch registros de registros na conta é menor que **dez**.

   CloudWatch O Logs tem uma cota de dez políticas de recursos por região e por conta. Se você tentar habilitar o registro em log em uma máquina de estado que já tem dez políticas de recursos, ela não será criada nem atualizada e você receberá um erro. Para obter mais informações sobre cotas de registro, consulte Cotas de [CloudWatch registros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)

   Para verificar o problema, verifique o número de políticas de recursos usando o comando da CLI:

    [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/describe-resource-policies.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/describe-resource-policies.html)

   Para resolver o problema, modifique suas políticas de recursos existentes.

   Primeiro, faça backup das políticas existentes. Em seguida, combine ações ou recursos semelhantes em uma nova política e use o seguinte comando da CLI para criar uma fonte de entrega na conta: 

   [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/put-delivery-source.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/put-delivery-source.html)

   Após fazer backup e atualizar as políticas, remova todas as políticas não utilizadas com o seguinte comando:

    [https://docs.aws.amazon.com/cli/latest/reference/logs/delete-resource-policy.html](https://docs.aws.amazon.com/cli/latest/reference/logs/delete-resource-policy.html)