

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

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

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

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

**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 `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. ](lambda-intro-execution-role.md)