Wie behebe ich Probleme beim Aufrufen einer Lambda-Funktion mit einer Amazon S3-Ereignisbenachrichtigung mithilfe von Systems Manager Automation?

Letzte Aktualisierung: 14.02.2022

Meine Ereignisbenachrichtigung für Amazon Simple Storage Service (Amazon S3) ruft meine AWS Lambda-Funktion nicht auf. Oder ich erhalte eine Fehlermeldung, wenn ich versuche, eine Amazon-S3-Ereignisbenachrichtigung zu erstellen, um meine Lambda-Funktion aufzurufen. Kann ich AWS Systems Manager Automation verwenden, um Probleme mit Amazon-S3-Ereignisbenachrichtigungen mit Lambda zu beheben?

Kurzbeschreibung

Um Probleme beim Senden von AmazonS-3-Ereignisbenachrichtigungen an Lambda zu beheben, verwenden Sie das Runbook awsSupport-TroubleshootLambdaS3Event Systems Manager Automation.

Das Runbook überprüft, ob eine Ereigniskonfiguration für die Lambda-Funktion und die von Ihnen eingegebenen Amazon-S3-Bucket-Parameterwerte vorhanden ist. Wenn eine Ereigniskonfiguration vorhanden ist, überprüft das Runbook, ob die Konfiguration, die Ressourcenrichtlinien und die Berechtigungen korrekt sind. Die Ausgabe des Runbooks enthält AWS-Command-Line-Interface-Befehle (AWS CLI) , mit denen Sie die erforderlichen Ressourcenrichtlinien oder Berechtigungen hinzufügen können.

Hinweis: Wenn die Amazon-S3-Ereignisbenachrichtigung nicht mehr benötigt wird, empfiehlt es sich, die Ereignisbenachrichtigung zu löschen.

Auflösung

1.    Öffnen Sie die AWS-Systems-Manager-Konsole.

2.    Wählen Sie im Navigationsbereich unter Change Management die Option Automatisierung aus.

3.    Wählen Sie Automatisierung ausführen aus.

4.    Geben Sie in der Registerkarte Im Besitz von Amazon im Suchfeld Automatisierungsdokumente AWSSupport-TroubleshootLambdaS3Event ein.

5.    Aktivieren Sie das Kontrollkästchen oben rechts auf der AWSSupport-TroubleshootLambdaS3Event-Karte. Wählen Sie dann Weiter aus.

6.    Gehen Sie im Abschnitt Eingabeparameter wie folgt vor:
Geben Sie für AutomationAssumeRole eine AWS-Identity-and-Access Management (IAM)-Rolle ein, damit das Runbook davon ausgehen kann, dass die Berechtigungen Lambda:GetPolicy und s3:getBucketNotification enthalten sind.
Geben Sie für LambdaFunctionArn den Amazon Resource Name (ARN) der Lambda-Funktion ein.
Geben Sie für S3BucketName den Namen des Amazon S3-Buckets ein.

7.    Wählen Sie Ausführen aus.

Hinweis: Wenn die Ausgabe vorschlägt, die Gleichzeitigkeit Ihrer Lambda-Funktion zu überprüfen und zu konfigurieren, siehe Asynchroner Aufruf und AWS Lambda-Funktionsskalierung.