

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
<a name="services-ec2"></a>

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)](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) pour des [événements de cycle de vie](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html), 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.

**Example é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](with-eventbridge-scheduler.md). Pour obtenir un exemple de fonction qui traite les notifications d’instantanés Amazon EBS, consultez [EventBridge Scheduler for Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-cloud-watch-events.html).

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)
<a name="services-ec2-permissions"></a>

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 ressources](access-control-resource-based.md)de 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 :

**Example 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](lambda-intro-execution-role.md) de la fonction.