Verarbeiten Sie Amazon EC2-Lebenszyklusereignisse mit einer Lambda-Funktion - AWS Lambda

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.

Verarbeiten Sie Amazon EC2-Lebenszyklusereignisse mit einer Lambda-Funktion

Sie können AWS Lambda verwenden, um Lebenszyklusereignisse aus Amazon Elastic Compute Cloud zu verarbeiten und Amazon-EC2-Ressourcen zu verwalten. Amazon EC2 sendet Ereignisse an Amazon EventBridge (CloudWatch Events) für Lebenszyklus-Ereignisse, z. B. wenn eine Instance ihren Status ändert, wenn ein Volume-Snapshot von Amazon Elastic Block Store abgeschlossen wird oder wenn eine Spot Instance beendet werden soll. Sie konfigurieren EventBridge (CloudWatch Events), um diese Ereignisse zur Verarbeitung an eine Lambda-Funktion weiterzuleiten.

EventBridge (CloudWatch Events) ruft Ihre Lambda-Funktion asynchron mit dem Ereignisdokument von Amazon EC2 auf.

Beispiel Instance-Lebenszyklusereignis
{ "version": "0", "id": "b6ba298a-7732-2226-xmpl-976312c1a050", "detail-type": "EC2 Instance State-change Notification", "source": "aws.ec2", "account": "111122223333", "time": "2019-10-02T17:59:30Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:111122223333:instance/i-0c314xmplcd5b8173" ], "detail": { "instance-id": "i-0c314xmplcd5b8173", "state": "running" } }

Einzelheiten zur Konfiguration von Ereignissen finden Sie unter Aufrufen einer Lambda-Funktion nach einem Zeitplan. Eine Beispielfunktion, die Amazon-EBS-Snapshot-Benachrichtigungen verarbeitet, finden Sie unter EventBridge Scheduler für Amazon EBS.

Sie können auch das AWS-SDK verwenden, um Instances und andere Ressourcen mit der Amazon-EC2-API zu verwalten.

Erteilen von Berechtigungen für EventBridge (CloudWatch Events)

Um Lebenszyklusereignisse von Amazon EC2 zu verarbeiten, benötigt EventBridge (CloudWatch Events) die Erlaubnis, Ihre Funktion aufzurufen. Diese Berechtigung stammt aus der ressourcenbasierten Richtlinie der Funktion. Wenn Sie die EventBridge (CloudWatch Events) Konsole verwenden, um einen Ereignisauslöser zu konfigurieren, aktualisiert die Konsole die ressourcenbasierte Richtlinie in Ihrem Namen. Andernfalls fügen Sie eine Anweisung wie die folgende hinzu:

Beispiel Ressourcenbasierte Richtlinienanweisung für Amazon-EC2-Lebenszyklusbenachrichtigungen
{ "Sid": "ec2-events", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:12456789012:function:my-function", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:events:us-east-1:12456789012:rule/*" } } }

Verwenden Sie den add-permission AWS CLI-Befehl, um eine Anweisung hinzuzufügen.

aws lambda add-permission --action lambda:InvokeFunction --statement-id ec2-events \ --principal events.amazonaws.com --function-name my-function --source-arn 'arn:aws:events:us-east-1:12456789012:rule/*'

Wenn Ihre Funktion das AWS-SDK zum Verwalten von Amazon-EC2-Ressourcen verwendet, fügen Sie der Ausführungsrolle der Funktion Amazon-EC2-Berechtigungen hinzu.