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 l'utiliser AWS Lambda pour traiter les événements du cycle de vie depuis Amazon Elastic Compute Cloud et gérer les ressources Amazon EC2. Amazon EC2 envoie des événements à Amazon EventBridge (CloudWatch Events) pour les événements du cycle de vie, tels que le changement d'état d'une instance, la fin d'une capture d'écran d'un volume Amazon Elastic Block Store ou la fin programmée d'une instance Spot. Vous configurez EventBridge (CloudWatch Events) pour transmettre ces événements à une fonction Lambda à des fins de traitement.
EventBridge (CloudWatch Events) appelle votre 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 un exemple de fonction qui traite les notifications d'instantanés Amazon EBS, consultez EventBridge Scheduler pour Amazon EBS.
Vous pouvez également utiliser le AWS SDK pour gérer des instances et d'autres ressources à l'aide de l'API Amazon EC2.
Octroi d'autorisations à EventBridge (CloudWatch événements)
Pour traiter les événements du cycle de vie depuis Amazon EC2, EventBridge (CloudWatch Events) doit être autorisé à invoquer votre fonction. Cette autorisation provient de la stratégie basée sur les ressourcesde la fonction. Si vous utilisez la console EventBridge (CloudWatch Événements) pour configurer un déclencheur d'événements, la console met à jour la politique basée sur les ressources 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 add-permission AWS CLI commande.
aws lambda add-permission --action lambda:InvokeFunction --statement-id ec2-events \ --principal events.amazonaws.com --function-namemy-function--source-arn 'arn:aws:events:us-east-1:12456789012:rule/*'
Si votre fonction utilise le AWS SDK pour gérer les ressources Amazon EC2, ajoutez des autorisations Amazon EC2 au rôle d'exécution de la fonction.