

# Monitorar eventos da AMI usando o Amazon EventBridge
<a name="monitor-ami-events"></a>

Quando o estado de uma imagem de máquina da Amazon (AMI) muda, o Amazon EC2 gera um evento que é enviado para o Amazon EventBridge (anteriormente conhecido como Amazon CloudWatch Events). Os eventos são enviados para o barramento de eventos do EventBridge padrão no formato JSON. É possível usar o Amazon EventBridge para detectar e reagir a esses eventos. Você faz isso criando regras no EventBridge que acionem uma ação em resposta a um evento. Por exemplo, é possível criar uma regra do EventBridge que detecte quando o processo de criação da AMI foi concluído e, em seguida, invoque um tópico do Amazon SNS para enviar uma notificação por email para você.

O Amazon EC2 gera um evento `EC2 AMI State Change` quando uma AMI entra em qualquer um dos seguintes estados:
+ `available`
+ `failed`
+ `deregistered`
+ `disabled`

Os eventos são gerados com base no melhor esforço.

A tabela abaixo mostra as operações da AMI e os estados que podem ser atribuídos a ela. Na tabela, **Sim** indica os estados que podem ser atribuídos à AMI ao executar a operação correspondente.


| Operações da AMI | available | failed | deregistered | disabled | 
| --- | --- | --- | --- | --- | 
| CopyImage | Sim | Sim |  |  | 
|  CreateImage  |  Sim  |  Sim  |  |  | 
|  CreateRestoreImageTask  | Sim | Sim |  |  | 
| DeregisterImage |  |  |  Sim  |  | 
|  DisableImage  |  |  |  |  Sim  | 
|  EnableImage  |  Sim  |  |  |  | 
| RegisterImage | Sim | Sim |  |  | 

**EC2 AMI State ChangeEventos do **
+ [Detalhes do evento](#ami-events)
+ [availableEventos do](#ami-event-available)
+ [failedEventos do](#ami-event-failed)
+ [deregisteredEventos do](#ami-event-deregistered)
+ [disabledEventos do](#ami-event-disabled)

## Detalhes do evento
<a name="ami-events"></a>

Você pode usar os seguintes campos no evento para criar regras que acionem uma ação:

`"source": "aws.ec2"`  
Identifica que o evento é do Amazon EC2.

`"detail-type": "EC2 AMI State Change"`  
Identifica o nome do evento.

`"detail": { "ImageId": "ami-0abcdef1234567890", "State": "available", }`  
Fornece o ID e o estado da AMI (`available`, `failed`, `deregistered` ou `disabled`).

Para obter mais informações, consulte os seguintes tópicos no *Guia do usuário do Amazon EventBridge*:
+ [Eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)
+ [Padrões de eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [Regras do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)

Para obter um tutorial sobre como criar uma função do Lambda e uma regra do EventBridge que execute a função do Lambda, consulte [Tutorial: Log the state of an Amazon EC2 instance using EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html) no *Guia do desenvolvedor do AWS Lambda*.

## availableEventos do
<a name="ami-event-available"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `available` após uma operação de `CreateImage`, `CopyImage`, `RegisterImage`, `CreateRestoreImageTask` ou `EnableImage` com êxito.

`"State": "available"` indica que a operação teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "available",
        "ErrorMessage": ""
    }
}
```

## failedEventos do
<a name="ami-event-failed"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `failed` após uma operação de `CreateImage`, `CopyImage`, `RegisterImage` ou `CreateRestoreImageTask` com êxito.

Os campos a seguir fornecem informações pertinentes:
+ `"State": "failed"`: indica que a operação falhou.
+ `"ErrorMessage": ""`: Fornece o motivo da operação com falha.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "failed",
        "ErrorMessage": "Description of failure"
    }
}
```

## deregisteredEventos do
<a name="ami-event-deregistered"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `deregistered` após uma operação de `DeregisterImage` com êxito. Se a operação falhar, nenhum evento será gerado. Qualquer falha será conhecida imediatamente, pois `DeregisterImage` é uma operação síncrona.

`"State": "deregistered"` indica que a operação `DeregisterImage` teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "deregistered",
        "ErrorMessage": ""
    }
}
```

## disabledEventos do
<a name="ami-event-disabled"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `disabled` após uma operação de `DisableImage` com êxito. Se a operação falhar, nenhum evento será gerado. Qualquer falha será conhecida imediatamente, pois `DisableImage` é uma operação síncrona.

`"State": "disabled"` indica que a operação `DisableImage` teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "disabled",
        "ErrorMessage": ""
    }
}
```