Utiliser CloudWatch les journaux pour enregistrer l'historique des exécutions dans Step Functions - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser CloudWatch les journaux pour enregistrer l'historique des exécutions dans Step Functions

Les flux de travail standard enregistrent l'historique d'exécution dans AWS Step Functions, mais vous pouvez éventuellement configurer la journalisation sur Amazon CloudWatch Logs.

Contrairement aux workflows standard, les workflows express n'enregistrent pas l'historique d'exécution dans AWS Step Functions. Pour consulter l'historique d'exécution et les résultats d'un flux de travail express, vous devez configurer la journalisation sur Amazon CloudWatch Logs. La publication des journaux ne bloque pas ou ne ralentit pas les exécutions.

Note

Lorsque vous configurez la journalisation, CloudWatch les frais de journalisation s'appliquent et vous serez facturé au tarif des journaux vendus. Pour plus d'informations, consultez la section Vended Logs sous l'onglet Logs de la page de CloudWatch tarification.

Configurer la journalisation

Lorsque vous créez un flux de travail standard à l'aide de la console Step Functions, cette machine d'état ne sera pas configurée pour envoyer des CloudWatch journaux à Logs. Lorsque vous créez un flux de travail express à l'aide de la console Step Functions, cette machine d'état est configurée par défaut pour envoyer des CloudWatch journaux à Logs.

Pour les flux de travail Express, Step Functions peut créer un rôle avec la politique nécessaire AWS Identity and Access Management (IAM) pour les CloudWatch journaux. Si vous créez un flux de travail standard ou un flux de travail express à l'aide de APICLI, ou AWS CloudFormation, Step Functions n'activera pas la journalisation par défaut et vous devrez vous assurer que votre rôle dispose des autorisations nécessaires.

Pour chaque exécution démarrée depuis la console, Step Functions fournit un lien vers CloudWatch les journaux, configuré avec le filtre approprié pour récupérer les événements de journal spécifiques à cette exécution.

Vous pouvez éventuellement configurer des AWS KMS clés gérées par le client pour chiffrer vos journaux. Consultez Chiffrement des données au repos pour plus de détails et les paramètres d'autorisation.

Pour configurer la journalisation, vous pouvez transmettre le LoggingConfigurationparamètre lorsque vous utilisez CreateStateMachineou UpdateStateMachine. Vous pouvez approfondir l'analyse de vos données dans CloudWatch Logs à l'aide de CloudWatch Logs Insights. Pour plus d'informations, voir Analyse des données de journal avec CloudWatch Logs Insights.

CloudWatch Enregistre les charges utiles

Les événements de l'historique d'exécution peuvent contenir des propriétés d'entrée ou de sortie dans leurs définitions. Si l'entrée échappée ou la sortie échappée envoyée à CloudWatch Logs dépasse 248 KiB, elle sera tronquée en raison des quotas de CloudWatch Logs.

IAMPolitiques de connexion à CloudWatch Logs

Vous devrez également configurer le IAM rôle d'exécution de votre machine d'état pour disposer de l'autorisation appropriée pour vous connecter à CloudWatch Logs, comme indiqué dans l'exemple suivant.

IAMexemple de politique

Voici un exemple de stratégie que vous pouvez utiliser pour configurer vos autorisations. Comme le montre l'exemple suivant, vous devez spécifier* dans le Resource champ. CloudWatch APIles actions, telles que CreateLogDelivery et DescribeLogGroups, ne prennent pas en charge les types de ressources définis par Amazon CloudWatch Logs. Pour plus d'informations, voir Actions définies par Amazon 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": "*" } ] }
Résolution des problèmes liés à la journalisation de la machine à CloudWatch états

Si votre machine d'état ne peut pas envoyer les CloudWatch journaux à Logs, essayez les étapes suivantes :

  1. Vérifiez que le rôle d'exécution de votre machine d'état est autorisé à se connecter à CloudWatch Logs.

    Lorsque vous appelez CreateStateMachinedes UpdateStateMachineAPIterminaux, assurez-vous que le IAM rôle spécifié dans le roleArn paramètre fournit les autorisations nécessaires, comme indiqué dans l'exemple de IAM politique précédent.

  2. Vérifiez que la politique de ressources CloudWatch Logs ne dépasse pas la limite de 5 120 caractères.

    Si la politique dépasse la limite de caractères, préfixez les noms de vos groupes de journaux avec /aws/vendedlogs/states pour accorder des autorisations à vos machines d'état et éviter cette limite. Lorsque vous créez un groupe de journaux dans la console Step Functions, les noms de groupes de journaux suggérés sont déjà préfixés par/aws/vendedlogs/states. Pour plus d'informations sur les meilleures pratiques de journalisation, consultezCloudWatch Limites de taille des règles relatives aux ressources des journaux.

Niveaux de journalisation des événements d'exécution de Step Functions

Les niveaux de journalisation vont de ALL ERROR à FATAL àOFF. Tous les types d'événements sont enregistrésALL, aucun type d'événement n'est enregistré lorsqu'il est défini surOFF. Pour ERROR et FATAL, voir le tableau suivant.

Pour plus d'informations sur les données d'exécution affichées pour les exécutions d'Express Workflow basées sur ces niveaux de journalisation, consultezDifférences d'expérience entre les consoles Standard et Express.

Type d’événement ALL ERROR FATAL OFF

ChoiceStateEntered

Connecté Non connecté Non connecté Non connecté

ChoiceStateExited

Connecté Non connecté Non connecté Non connecté

ExecutionAborted

Connecté Connecté Connecté Non connecté

ExecutionFailed

Connecté Connecté Connecté Non connecté

ExecutionStarted

Connecté Non connecté Non connecté Non connecté

ExecutionSucceeded

Connecté Non connecté Non connecté Non connecté

ExecutionTimedOut

Connecté Connecté Connecté Non connecté

FailStateEntered

Connecté Connecté Non connecté Non connecté

LambdaFunctionFailed

Connecté Connecté Non connecté Non connecté
LambdaFunctionScheduled Connecté Non connecté Non connecté Non connecté

LambdaFunctionScheduleFailed

Connecté Connecté Non connecté Non connecté

LambdaFunctionStarted

Connecté Non connecté Non connecté Non connecté

LambdaFunctionStartFailed

Connecté Connecté Non connecté Non connecté

LambdaFunctionSucceeded

Connecté Non connecté Non connecté Non connecté

LambdaFunctionTimedOut

Connecté Connecté Non connecté Non connecté

MapIterationAborted

Connecté Connecté Non connecté Non connecté

MapIterationFailed

Connecté Connecté Non connecté Non connecté

MapIterationStarted

Connecté Non connecté Non connecté Non connecté

MapIterationSucceeded

Connecté Non connecté Non connecté Non connecté

MapRunAborted

Connecté Connecté Non connecté Non connecté

MapRunFailed

Connecté Connecté Non connecté Non connecté

MapStateAborted

Connecté Connecté Non connecté Non connecté

MapStateEntered

Connecté Non connecté Non connecté Non connecté

MapStateExited

Connecté Non connecté Non connecté Non connecté

MapStateFailed

Connecté Connecté Non connecté Non connecté

MapStateStarted

Connecté Non connecté Non connecté Non connecté

MapStateSucceeded

Connecté Non connecté Non connecté Non connecté

ParallelStateAborted

Connecté Connecté Non connecté Non connecté

ParallelStateEntered

Connecté Non connecté Non connecté Non connecté

ParallelStateExited

Connecté Non connecté Non connecté Non connecté
ParallelStateFailed Connecté Connecté Non connecté Non connecté

ParallelStateStarted

Connecté Non connecté Non connecté Non connecté

ParallelStateSucceeded

Connecté Non connecté Non connecté Non connecté

PassStateEntered

Connecté Non connecté Non connecté Non connecté

PassStateExited

Connecté Non connecté Non connecté Non connecté

SucceedStateEntered

Connecté Non connecté Non connecté Non connecté

SucceedStateExited

Connecté Non connecté Non connecté Non connecté

TaskFailed

Connecté Connecté Non connecté Non connecté

TaskScheduled

Connecté Non connecté Non connecté Non connecté
TaskStarted Connecté Non connecté Non connecté Non connecté

TaskStartFailed

Connecté Connecté Non connecté Non connecté

TaskStateAborted

Connecté Connecté Non connecté Non connecté

TaskStateEntered

Connecté Non connecté Non connecté Non connecté
TaskStateExited Connecté Non connecté Non connecté Non connecté
TaskSubmitFailed Connecté Connecté Non connecté Non connecté
TaskSubmitted Connecté Non connecté Non connecté Non connecté
TaskSucceeded Connecté Non connecté Non connecté Non connecté
TaskTimedOut Connecté Connecté Non connecté Non connecté
WaitStateAborted Connecté Connecté Non connecté Non connecté
WaitStateEntered Connecté Non connecté Non connecté Non connecté
WaitStateExited Connecté Non connecté Non connecté Non connecté