Traiter les événements du cycle de vie Amazon EC2 avec une fonction Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Traiter les événements du cycle de vie Amazon EC2 avec une fonction Lambda

Vous pouvez utiliser AWS Lambda pour traiter des événements de cycle de vie d’Amazon Elastic Compute Cloud et gérer des ressources Amazon EC2. Amazon EC2 envoie des événements à Amazon EventBridge (CloudWatch Events) pour des événements de cycle de vie, par exemple, quand une instance change d’état, quand un instantané de volume Amazon Elastic Block Store est terminé ou quand une instance Spot est planifiée pour être arrêtée. Vous configurez EventBridge (CloudWatch Events) pour transférer ces événements à une fonction Lambda en vue de leur traitement.

EventBridge (CloudWatch Events) appelle la fonction Lambda de manière asynchrone avec le document d’événement d’Amazon EC2.

Exemple événement du cycle de vie d’une instance
{ "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" } }

Pour plus d’informations sur la configuration des événements, consultez Invocation d’une fonction Lambda dans une planification. Pour obtenir un exemple de fonction qui traite les notifications d’instantanés Amazon EBS, consultez EventBridge Scheduler for Amazon EBS.

Vous pouvez également utiliser le kit SDK AWS pour gérer les instances et d’autres ressources avec l’API Amazon EC2.

Octroi d’autorisations à EventBridge (CloudWatch Events)

Pour traiter les événements de cycle de vie d’Amazon EC2, EventBridge (CloudWatch Events) doit être autorisé à appeler votre fonction. Cette autorisation provient de la stratégie basée sur les ressourcesde la fonction. Si vous utilisez la console EventBridge (CloudWatch Events) pour configurer un déclencheur d’événement, la console met à jour la stratégie basée sur une ressource en votre nom. Sinon, ajoutez une instruction comme suit :

Exemple Déclaration de stratégie basée sur une ressource pour les notifications de cycle de vie Amazon EC2
{ "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/*" } } }

Pour ajouter une instruction, utilisez la commande add-permission AWS CLI.

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/*'

Si votre fonction utilise le kit SDK AWS pour gérer les ressources Amazon EC2, ajoutez des autorisations Amazon EC2 au rôle d’exécution de la fonction.