Utilizzo di CloudWatch Logs per registrare la cronologia delle esecuzioni in Step Functions - AWS Step Functions

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di CloudWatch Logs per registrare la cronologia delle esecuzioni in Step Functions

I flussi di lavoro standard registrano la cronologia di esecuzione in AWS Step Functions, sebbene sia possibile configurare facoltativamente la registrazione su Amazon CloudWatch Logs.

A differenza dei flussi di lavoro standard, Express Workflows non registra la cronologia di esecuzione in AWS Step Functions. Per visualizzare la cronologia di esecuzione e i risultati di un Express Workflow, devi configurare la registrazione su Amazon CloudWatch Logs. I log di pubblicazione non bloccano o rallentano le esecuzioni.

Nota

Quando configuri la registrazione, verranno applicati i costi di CloudWatch Logs e ti verrà addebitata la tariffa dei log venduti. Per ulteriori informazioni, consulta Vending Logs nella scheda Logs della pagina Prezzi. CloudWatch

Configurazione della registrazione

Quando si crea un flusso di lavoro standard utilizzando la console Step Functions, quella macchina a stati non sarà configurata per inviare log a CloudWatch Logs. Quando si crea un Express Workflow utilizzando la console Step Functions, quella macchina a stati sarà configurata per impostazione predefinita per inviare log a CloudWatch Logs.

Per i flussi di lavoro Express, Step Functions può creare un ruolo con il necessario AWS Identity and Access Management (IAM) politica per i CloudWatch registri. Se si crea un flusso di lavoro standard o un flusso di lavoro Express utilizzando APICLI, o AWS CloudFormation, Step Functions non abilita la registrazione per impostazione predefinita e dovrai assicurarti che il tuo ruolo disponga delle autorizzazioni necessarie.

Per ogni esecuzione avviata dalla console, Step Functions fornisce un collegamento a CloudWatch Logs, configurato con il filtro corretto per recuperare gli eventi di registro specifici per quell'esecuzione.

Facoltativamente, puoi configurare Customer Managed AWS KMS chiavi per crittografare i log. Vedi Crittografia dei dati inattivi per i dettagli e le impostazioni di autorizzazione.

Per configurare la registrazione, puoi passare il LoggingConfigurationparametro quando usi CreateStateMachineo UpdateStateMachine. È possibile analizzare ulteriormente i dati in CloudWatch Logs utilizzando CloudWatch Logs Insights. Per ulteriori informazioni, consulta Analisi dei dati di registro con CloudWatch Logs Insights.

CloudWatch Registra i payload

Gli eventi della cronologia di esecuzione possono contenere proprietà di input o output nelle loro definizioni. Se l'input con escape o l'output con escape inviato a CloudWatch Logs supera i 248 KB, verrà troncato a causa delle quote di log. CloudWatch

IAMPolitiche per la registrazione nei registri CloudWatch

È inoltre necessario configurare il IAM ruolo di esecuzione della macchina a stati per disporre dell'autorizzazione appropriata per accedere ai CloudWatch registri, come mostrato nell'esempio seguente.

IAMesempio di politica

Di seguito è riportata una policy di esempio che è possibile utilizzare per configurare le autorizzazioni. Come illustrato nell'esempio seguente, è necessario specificare * nel Resource campo. CloudWatch APIle azioni, come CreateLogDelivery e DescribeLogGroups, non supportano i tipi di risorse definiti da Amazon CloudWatch Logs. Per ulteriori informazioni, vedere Azioni definite da Amazon CloudWatch Logs.

  • Per informazioni su CloudWatch risorse, vedi CloudWatch Logs risorse e operazioni nella Amazon CloudWatch User Guide.

  • Per informazioni sulle autorizzazioni necessarie per configurare l'invio di log a CloudWatch Logs, consulta Autorizzazioni utente nella sezione intitolata Logs sent to 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": "*" } ] }
Risoluzione dei problemi relativi alla registrazione della macchina a stati nei registri CloudWatch

Se la tua macchina a stati non è in grado di inviare log a CloudWatch Logs, prova i seguenti passaggi:

  1. Verifica che il ruolo di esecuzione della tua macchina a stati sia autorizzato ad accedere ai CloudWatch registri.

    Quando chiamate CreateStateMachineo UpdateStateMachineAPIterminate gli endpoint, assicuratevi che il IAM ruolo specificato nel roleArn parametro fornisca le autorizzazioni necessarie, mostrate nell'esempio di policy precedenteIAM.

  2. Verifica che la politica delle risorse CloudWatch Logs non superi il limite di 5.120 caratteri.

    Se la politica supera il limite di caratteri, inserisci come prefisso i nomi dei gruppi di log /aws/vendedlogs/states per concedere le autorizzazioni alle macchine a stati ed evitare il limite. Quando si crea un gruppo di log nella console Step Functions, i nomi dei gruppi di log suggeriti hanno già il prefisso. /aws/vendedlogs/states Per ulteriori informazioni sulle migliori pratiche di registrazione, consulta. CloudWatch Registra i limiti di dimensione delle politiche relative alle risorse

Livelli di registro per gli eventi di esecuzione di Step Functions

I livelli di registro vanno da ALL ERROR a FATAL aOFF. Tutti i tipi di eventi vengono registratiALL, nessun tipo di evento viene registrato se impostato su. OFF Per ERROR e FATAL, consulta la tabella seguente.

Per ulteriori informazioni sui dati di esecuzione visualizzati per le esecuzioni di Express Workflow basate su questi livelli di registro, vedere. Differenze di esperienza tra console Standard ed Express

Tipo di evento ALL ERROR FATAL OFF

ChoiceStateEntered

Registrato Non registrato Non registrato Non registrato

ChoiceStateExited

Registrato Non registrato Non registrato Non registrato

ExecutionAborted

Registrato Registrato Registrato Non registrato

ExecutionFailed

Registrato Registrato Registrato Non registrato

ExecutionStarted

Registrato Non registrato Non registrato Non registrato

ExecutionSucceeded

Registrato Non registrato Non registrato Non registrato

ExecutionTimedOut

Registrato Registrato Registrato Non registrato

FailStateEntered

Registrato Registrato Non registrato Non registrato

LambdaFunctionFailed

Registrato Registrato Non registrato Non registrato
LambdaFunctionScheduled Registrato Non registrato Non registrato Non registrato

LambdaFunctionScheduleFailed

Registrato Registrato Non registrato Non registrato

LambdaFunctionStarted

Registrato Non registrato Non registrato Non registrato

LambdaFunctionStartFailed

Registrato Registrato Non registrato Non registrato

LambdaFunctionSucceeded

Registrato Non registrato Non registrato Non registrato

LambdaFunctionTimedOut

Registrato Registrato Non registrato Non registrato

MapIterationAborted

Registrato Registrato Non registrato Non registrato

MapIterationFailed

Registrato Registrato Non registrato Non registrato

MapIterationStarted

Registrato Non registrato Non registrato Non registrato

MapIterationSucceeded

Registrato Non registrato Non registrato Non registrato

MapRunAborted

Registrato Registrato Non registrato Non registrato

MapRunFailed

Registrato Registrato Non registrato Non registrato

MapStateAborted

Registrato Registrato Non registrato Non registrato

MapStateEntered

Registrato Non registrato Non registrato Non registrato

MapStateExited

Registrato Non registrato Non registrato Non registrato

MapStateFailed

Registrato Registrato Non registrato Non registrato

MapStateStarted

Registrato Non registrato Non registrato Non registrato

MapStateSucceeded

Registrato Non registrato Non registrato Non registrato

ParallelStateAborted

Registrato Registrato Non registrato Non registrato

ParallelStateEntered

Registrato Non registrato Non registrato Non registrato

ParallelStateExited

Registrato Non registrato Non registrato Non registrato
ParallelStateFailed Registrato Registrato Non registrato Non registrato

ParallelStateStarted

Registrato Non registrato Non registrato Non registrato

ParallelStateSucceeded

Registrato Non registrato Non registrato Non registrato

PassStateEntered

Registrato Non registrato Non registrato Non registrato

PassStateExited

Registrato Non registrato Non registrato Non registrato

SucceedStateEntered

Registrato Non registrato Non registrato Non registrato

SucceedStateExited

Registrato Non registrato Non registrato Non registrato

TaskFailed

Registrato Registrato Non registrato Non registrato

TaskScheduled

Registrato Non registrato Non registrato Non registrato
TaskStarted Registrato Non registrato Non registrato Non registrato

TaskStartFailed

Registrato Registrato Non registrato Non registrato

TaskStateAborted

Registrato Registrato Non registrato Non registrato

TaskStateEntered

Registrato Non registrato Non registrato Non registrato
TaskStateExited Registrato Non registrato Non registrato Non registrato
TaskSubmitFailed Registrato Registrato Non registrato Non registrato
TaskSubmitted Registrato Non registrato Non registrato Non registrato
TaskSucceeded Registrato Non registrato Non registrato Non registrato
TaskTimedOut Registrato Registrato Non registrato Non registrato
WaitStateAborted Registrato Registrato Non registrato Non registrato
WaitStateEntered Registrato Non registrato Non registrato Non registrato
WaitStateExited Registrato Non registrato Non registrato Non registrato