Verwendung von CloudWatch Logs zur Protokollierung des Ausführungsverlaufs in Step Functions - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von CloudWatch Logs zur Protokollierung des Ausführungsverlaufs in Step Functions

Standard-Workflows zeichnen den Ausführungsverlauf auf in AWS Step Functions, obwohl Sie optional die Protokollierung in Amazon CloudWatch Logs konfigurieren können.

Im Gegensatz zu Standard-Workflows zeichnen Express-Workflows den Ausführungsverlauf nicht auf AWS Step Functions. Um den Ausführungsverlauf und die Ergebnisse für einen Express-Workflow zu sehen, müssen Sie die Protokollierung in Amazon CloudWatch Logs konfigurieren. Durch das Veröffentlichen von Protokollen werden die Ausführungen nicht blockiert oder verlangsamt.

Anmerkung

Wenn Sie die Protokollierung konfigurieren, fallen CloudWatch Logs-Gebühren an, und Ihnen wird der Tarif für verkaufte Logs in Rechnung gestellt. Weitere Informationen finden Sie auf der Seite mit den Preisen unter Vended Logs unter dem Tab Logs. CloudWatch

Konfigurieren der -Protokollierung

Wenn Sie mit der Step Functions Functions-Konsole einen Standard-Workflow erstellen, ist dieser Zustandsmaschine nicht so konfiguriert, dass er CloudWatch Protokolle an Logs sendet. Wenn Sie mit der Step Functions Functions-Konsole einen Express-Workflow erstellen, ist dieser Zustandsmaschine standardmäßig so konfiguriert, dass er CloudWatch Protokolle an Logs sendet.

Für Express-Workflows kann Step Functions eine Rolle mit den erforderlichen AWS Identity and Access Management (IAM) Richtlinie für CloudWatch Protokolle. Wenn Sie einen Standard-Workflow oder einen Express-Workflow mit demAPI,CLI, oder erstellen AWS CloudFormation, Step Functions aktiviert die Protokollierung standardmäßig nicht, und Sie müssen sicherstellen, dass Ihre Rolle über die erforderlichen Berechtigungen verfügt.

Für jede Ausführung, die von der Konsole aus gestartet wird, stellt Step Functions einen Link zu CloudWatch Logs bereit, der mit dem richtigen Filter konfiguriert ist, um Log-Ereignisse abzurufen, die für diese Ausführung spezifisch sind.

Sie können optional die vom Kunden verwaltete Konfiguration konfigurieren AWS KMS Schlüssel zur Verschlüsselung Ihrer Logs. Verschlüsselung von Daten im RuhezustandEinzelheiten und Berechtigungseinstellungen finden Sie unter.

Um die Protokollierung zu konfigurieren, können Sie den LoggingConfigurationParameter übergeben, wenn Sie CreateStateMachineoder verwenden UpdateStateMachine. Mithilfe von CloudWatch Logs Insights können Sie Ihre Daten in CloudWatch Logs weiter analysieren. Weitere Informationen finden Sie unter Analysieren von Protokolldaten mit CloudWatch Logs Insights.

CloudWatch Protokolliert Payloads

Ereignisse in der Ausführungshistorie können entweder Eingabe- oder Ausgabeeigenschaften in ihren Definitionen enthalten. Wenn an CloudWatch Logs gesendete Escape-Eingabe oder Escape-Ausgabe 248 KB überschreitet, werden sie aufgrund von CloudWatch Protokollkontingenten gekürzt.

IAMRichtlinien für die Protokollierung in CloudWatch Logs

Sie müssen außerdem die IAM Ausführungsrolle Ihres Zustandsmaschinen so konfigurieren, dass Sie über die erforderlichen Berechtigungen für die CloudWatch Protokollierung in Logs verfügen, wie im folgenden Beispiel gezeigt.

IAMBeispiel für eine Richtlinie

Im Folgenden finden Sie eine Beispielrichtlinie, mit der Sie Ihre Berechtigungen konfigurieren können. Wie im folgenden Beispiel gezeigt, müssen Sie * in das Resource Feld eingeben. CloudWatch APIAktionen wie CreateLogDelivery und unterstützen keine Ressourcentypen DescribeLogGroups, die definiert sind von Amazon CloudWatch Logs. Weitere Informationen finden Sie unter Aktionen definiert von Amazon CloudWatch Logs.

  • Für Informationen über CloudWatch Ressourcen finden Sie unter CloudWatch Logs Ressourcen und Operationen im CloudWatch Amazon-Benutzerhandbuch.

  • Informationen zu den Berechtigungen, die Sie benötigen, um das Senden von Protokollen an CloudWatch Logs einzurichten, finden Sie unter Benutzerberechtigungen im Abschnitt Gesendete Logs 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": "*" } ] }
Fehlerbehebung bei der Protokollierung des Zustands der Maschine in CloudWatch Logs

Wenn Ihr Zustandsmaschine keine CloudWatch Protokolle an Logs senden kann, versuchen Sie es mit den folgenden Schritten:

  1. Stellen Sie sicher, dass die Ausführungsrolle Ihres Zustandsmaschinen berechtigt ist, sich in CloudWatch Logs zu protokollieren.

    Wenn Sie unsere UpdateStateMachineAPIEndpoints aufrufen CreateStateMachine, stellen Sie sicher, dass die im roleArn Parameter angegebene IAM Rolle die erforderlichen Berechtigungen bereitstellt, wie im vorherigen IAM Richtlinienbeispiel gezeigt.

  2. Stellen Sie sicher, dass die Ressourcenrichtlinie für CloudWatch Logs das Limit von 5.120 Zeichen nicht überschreitet.

    Wenn die Richtlinie die Zeichenbeschränkung überschreitet, stellen Sie Ihren Protokollgruppennamen ein Präfix voran, /aws/vendedlogs/states um Ihren Zustandsmaschinen Berechtigungen zu gewähren und das Limit zu umgehen. Wenn Sie eine Protokollgruppe in der Step Functions Functions-Konsole erstellen, wird den vorgeschlagenen Protokollgruppennamen bereits ein Präfix /aws/vendedlogs/states vorangestellt. Weitere Informationen zu bewährten Methoden für die Protokollierung finden Sie unterCloudWatch Protokolliert die Größenbeschränkungen der Ressourcenrichtlinie.

Protokollebenen für Ausführungsereignisse von Step Functions

Die Protokollebenen reichen von ALL ERROR bis FATAL bisOFF. Alle Ereignistypen werden protokolliert. Wenn diese Einstellung auf gesetzt istALL, werden keine Ereignistypen protokolliertOFF. Informationen zu ERROR und FATAL finden Sie in der folgenden Tabelle.

Weitere Informationen zu den Ausführungsdaten, die für Express Workflow-Ausführungen auf der Grundlage dieser Protokollebenen angezeigt werden, finden Sie unterBei Standard- und Express-Konsolen treten Unterschiede auf.

Ereignistyp ALL ERROR FATAL OFF

ChoiceStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ChoiceStateExited

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ExecutionAborted

Geloggt Geloggt Geloggt Nicht angemeldet

ExecutionFailed

Geloggt Geloggt Geloggt Nicht angemeldet

ExecutionStarted

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ExecutionSucceeded

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ExecutionTimedOut

Geloggt Geloggt Geloggt Nicht angemeldet

FailStateEntered

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

LambdaFunctionFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet
LambdaFunctionScheduled Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

LambdaFunctionScheduleFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

LambdaFunctionStarted

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

LambdaFunctionStartFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

LambdaFunctionSucceeded

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

LambdaFunctionTimedOut

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapIterationAborted

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapIterationFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapIterationStarted

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

MapIterationSucceeded

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

MapRunAborted

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapRunFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapStateAborted

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

MapStateExited

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

MapStateFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

MapStateStarted

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

MapStateSucceeded

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ParallelStateAborted

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

ParallelStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ParallelStateExited

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
ParallelStateFailed Geloggt Geloggt Nicht angemeldet Nicht angemeldet

ParallelStateStarted

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

ParallelStateSucceeded

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

PassStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

PassStateExited

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

SucceedStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

SucceedStateExited

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

TaskFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

TaskScheduled

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
TaskStarted Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet

TaskStartFailed

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

TaskStateAborted

Geloggt Geloggt Nicht angemeldet Nicht angemeldet

TaskStateEntered

Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
TaskStateExited Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
TaskSubmitFailed Geloggt Geloggt Nicht angemeldet Nicht angemeldet
TaskSubmitted Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
TaskSucceeded Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
TaskTimedOut Geloggt Geloggt Nicht angemeldet Nicht angemeldet
WaitStateAborted Geloggt Geloggt Nicht angemeldet Nicht angemeldet
WaitStateEntered Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet
WaitStateExited Geloggt Nicht angemeldet Nicht angemeldet Nicht angemeldet