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
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.
-
Vous pouvez déterminer si une charge utile a été tronquée en consultant les propriétés
inputDetails
etoutputDetails
. Pour plus d'informations, consultez le type deHistoryEventExecutionDataDetails
données. -
Pour les flux de travail standard, vous pouvez consulter l'historique complet des exécutions en utilisant
GetExecutionHistory
. -
GetExecutionHistory
n'est pas disponible pour Express Workflows. Si vous souhaitez voir les entrées et sorties complètes, vous pouvez utiliser Amazon S3ARNs. Pour de plus amples informations, veuillez consulter Utiliser Amazon S3 ARNs au lieu de transmettre des charges utiles importantes dans Step Functions.
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.
-
Pour plus d'informations sur CloudWatch ressources, voir CloudWatch Logs ressources et opérations décrites dans le guide de CloudWatch l'utilisateur Amazon.
-
Pour plus d'informations sur les autorisations dont vous avez besoin pour configurer l'envoi de CloudWatch journaux à Logs, consultez la section Autorisations des utilisateurs dans la section intitulée Journaux envoyés à 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 :
-
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. -
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é |