Direkt zum Inhalt

Wie richte ich eine Lambda-Funktion ein, die aufgerufen wird, wenn sich ein Status in AWS Step Functions ändert?

Lesedauer: 4 Minute
0

Ich möchte eine AWS-Lambda-Funktion aufrufen, wenn sich ein Status in AWS Step Functions ändert. Wie mache ich das?

Lösung

Hinweis: Diese Anweisungen beschreiben, wie eine Amazon-EventBridge-Ereignisregel verwendet wird, um eine Lambda-Funktion aufzurufen, wenn sich ein Status in Step Functions ändert. Wenn du die Schritte ausführst, stelle sicher, dass du Folgendes tust:

  • Vergewissere dich, dass die Ereignisänderung, die du zum Aufrufen der Lambda-Funktion verwendest, eine unterstützte API-Aktion ist.
  • Erstelle die Regel für den Step-Functions-Zustandsautomat, die Lambda-Funktion und EventBridge-Ereignisse in derselben AWS-Region.

IAM-Rollen für Step Functions und Lambda erstellen

1.    Erstelle eine AWS Identity and Access Management (IAM)-Rolle für Step Functions. Gehe beim Erstellen der IAM-Rolle wie folgt vor:
Erteile der IAM-Rolle Berechtigungen, um alle für deinen Anwendungsfall erforderlichen Aktionen durchzuführen.
Erlaube der Aktion lambda:InvokeFunction, den Zustandsautomaten deine Lambda-Funktion aufrufen zu lassen.
Hinweis: Die verwaltete Richtlinie AWSLambdaRole enthält die Berechtigungen, die zum Aufrufen von Lambda-Funktionen erforderlich sind.

2.    Erstelle eine Lambda-Ausführungsrolle, die deiner Funktion die Erlaubnis erteilt, Protokolle auf Amazon CloudWatch hochzuladen.
Hinweis: Die verwaltete Richtlinie AWSLambdaBasicExecutionRole gewährt deiner Funktion die grundlegenden Berechtigungen zum Hochladen von Protokollen auf CloudWatch.

Erstellen eines Step-Functions-Zustandsautomaten

Erstelle einen Zustandsautomaten in der Step-Functions-Konsole. Wähle für die IAM-Rolle für Ausführungen die vorhandene Rolle aus, die du für Step Functions erstellt hast.

Weitere Informationen findest du unter Was sind AWS Step Functions?

Eine Lambda-Funktion erstellen, die so konfiguriert ist, dass sie das empfangene Ereignis druckt

1.    Erstelle eine Funktion in der Lambda-Konsole. Wähle für Ausführungsrolle die vorhandene Rolle aus, die du für Lambda erstellt hast.

2.    Verwende in der Lambda-Konsole den Code-Editor, um den Funktionscode zu aktualisieren, sodass die Funktion bei der Ausführung das Ereignis ausgibt, das sie empfängt.

Python-Beispielcode, der eine Lambda-Funktion anweist, die empfangenen Ereignisse auszudrucken

import json

def lambda_handler(event, context):
print("Received event: " + json.dumps(event)) return {
'statusCode': 200,
'body': json.dumps("Hello")
}

Weitere Informationen findest du unter Erstellen von Lambda-Funktionen mit Python.

Eine EventBridge-Ereignisregel erstellen, die die Lambda-Funktion aufruft, wenn sich ein Status in Step Functions ändert

1.    Öffne die EventBridge-Konsole.

2.    Wähle im linken Navigationsbereich unter Ereignisse die Option Regeln aus.

3.    Wähle Regel erstellen aus.

4.    Gib unter Name einen Namen für die Regel ein.

5.    Wähle für Muster definieren die Option Ereignismuster aus.

6.    Wähle für Event-Matching-Muster die Option Vordefiniertes Muster vom Service aus.

7.    Wähle für Service-Anbieter AWS aus.

8.    Wähle für Service-Name Step Functions aus.

9.    Wähle für Ereignistyp die Option Step Functions-Ausführungsstatusänderung aus.

Hinweis: Du kannst auch festlegen, dass Alle Ereignisse für Step Functions die Regel initiieren. Du kannst auch AWS API Call through CloudTrail (AWS-API-Aufruf über CloudTrail) wählen, um die Regel für bestimmte Step-Functions-API-Aufrufereignisse wie StartExecution zu initiieren. Weitere Informationen findest du unter Ereignisse von AWS-Services.

10.    Wähle die Amazon-Ressourcennamen (ARNs) für Status, Zustandsautomaten und Ausführungs-ARNs aus, mit denen du das Ereignis initiieren möchtest. Du kannst für Any (Beliebig) jeden Triggertyp wählen oder für jeden Trigger spezifische Status oder ARNs angeben.

11.    Bestätige unter Ziele auswählen, dass die Lambda-Funktion der Zieltyp ist.

12.    Wähle für Funktion die Lambda-Funktion aus, die du erstellt hast.

13.    Wähle Regel erstellen aus.

Weitere Informationen findest du unter Amazon-EventBridge-Ereignisse und Änderungen des Ausführungsstatus von EventBridge für Step Functions.

Setup testen

1.    Starte in der Step-Functions-Konsole eine neue Ausführung des Zustandsautomaten.

2.    Wähle in der CloudWatch-Konsole im linken Navigationsbereich unter Protokolle die Option Protokollgruppen aus.

3.    Wähle den Protokollstream, der von der Lambda-Funktion erstellt wurde.

4.    Überprüfe die Ereignisdetails im Protokollstream.

Hinweis: Es kann mehrere Minuten dauern, bis der Protokollstream erscheint, nachdem die neue Ausführung gestartet wurde.


Ähnliche Informationen

Überwachung von Step Functions mit CloudWatch

Erstellen eines Step-Functions-Zustandsautomaten, der Lambda verwendet

AWS OFFICIALAktualisiert vor 4 Jahren