

# Procese los eventos del ciclo de vida de Amazon EC2 con una función de Lambda
<a name="services-ec2"></a>

Puede utilizar AWS Lambda para procesar eventos del ciclo de vida desde Amazon Elastic Compute Cloud y administrar los recursos de Amazon EC2. 2Amazon EC2 envía eventos a [Amazon EventBridge (Eventos de CloudWatch)](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) para [eventos del ciclo de vida](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html), como cuando una instancia cambia de estado, cuando se completa una instantánea de volumen de Amazon Elastic Block Store o cuando se programa que se termine una instancia de spot. Configura EventBridge (CloudWatch Events) para reenviar esos eventos a una función de Lambda para su procesamiento.

EventBridge (CloudWatch Events) invoca su función de Lambda de forma asíncrona con el documento de evento de Amazon EC2.

**Example Ciclo de vida de la instancia**  

```
{
    "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"
    }
}
```

Para obtener detalles sobre la configuración de eventos, consulte [Invocación de una función de Lambda según una programación](with-eventbridge-scheduler.md). Para ver una función de ejemplo que procesa las notificaciones de instantáneas de Amazon EBS, consulte [EventBridge Scheduler para](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-cloud-watch-events.html) Amazon EBS.

También puede utilizar AWS SDK para administrar instancias y otros recursos con la API de Amazon EC2. 

## Cómo otorgar permisos a EventBridge (Eventos de CloudWatch)
<a name="services-ec2-permissions"></a>

Para procesar eventos del ciclo de vida desde Amazon EC2, EventBridge (CloudWatch Events) necesita permiso para invocar su función. Este permiso proviene de la [política basada en recursos](access-control-resource-based.md) de la función. Si utiliza la consola de EventBridge (CloudWatch Events) para configurar un desencadenador de eventos, la consola actualiza la política basada en recursos en su nombre. De lo contrario, agregue una declaración como la siguiente:

**Example Instrucción de una política basada en recursos para notificaciones del ciclo de vida de 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/*"
    }
  }
}
```

Para agregar una instrucción, utilice el comando de la AWS CLI `add-permission`.

```
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 la función utiliza el AWS SDK para administrar recursos de Amazon EC2, agregue permisos de Amazon EC2 al [rol de ejecución](lambda-intro-execution-role.md) de la función.