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
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.
-
Anhand der Eigenschaften und können Sie feststellen, ob eine Payload gekürzt wurde.
inputDetails
outputDetails
Weitere Informationen finden Sie unterHistoryEventExecutionDataDetails
Datentyp. -
Für Standard-Workflows können Sie den vollständigen Ausführungsverlauf anzeigen, indem Sie
GetExecutionHistory
-
GetExecutionHistory
ist für Express-Workflows nicht verfügbar. Wenn Sie die vollständige Eingabe und Ausgabe sehen möchten, können Sie Amazon S3 verwendenARNs. Weitere Informationen finden Sie unter Amazon S3 verwenden, ARNs anstatt große Nutzlasten in Step Functions zu übergeben.
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:
-
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. -
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 |