Utilisation AWS Lambda avec Amazon EC2 - 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.

Utilisation AWS Lambda avec Amazon EC2

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 des événements du cycle de vie, tels que lorsqu'une instance change d'état, lorsqu'un instantané du volume Amazon Elastic Block Store est terminé ou lorsqu'il est prévu de mettre fin à une instance ponctuelle. Vous configurez EventBridge (CloudWatch Events) pour transmettre ces événements à une fonction Lambda pour 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 de détails sur la configuration des événements, consultezUtilisation de Lambda avec Amazon Scheduler EventBridge . Pour un exemple de fonction qui traite les notifications instantanées Amazon EBS, consultez EventBridge Scheduler for Amazon EBS.

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

Autorisations

Pour traiter les événements du cycle de vie depuis Amazon EC2, EventBridge (CloudWatch Events) a besoin d'une autorisation pour 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 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-name my-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.