

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: registre o estado de uma instância do Amazon EC2 usando EventBridge
<a name="eb-log-ec2-instance-state"></a>

Também é possível criar uma função do [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) que registra as alterações de estado para uma instância do [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html). Você pode optar por criar uma [regra](eb-rules.md) que execute a função do Lambda sempre que houver uma transição de estado ou uma transição para um ou mais estados de interesse. Neste tutorial, você registra a execução de qualquer nova instância.

**Topics**
+ [Etapa 1: criar uma AWS Lambda função](#eb-ec2-create-lambda-function)
+ [Etapa 2: Criar uma regra](#eb-ec2-create-rule)
+ [Etapa 3: Testar a regra](#eb-api-test-rule)
+ [Etapa 4: confirmar o êxito](#success)
+ [Etapa 5: limpar os recursos](#cleanup)

## Etapa 1: criar uma AWS Lambda função
<a name="eb-ec2-create-lambda-function"></a>

Crie uma função do Lambda para registrar em log os [eventos](eb-events.md) de alteração de estado. Ao criar sua regra na etapa 2, essa função é especificada.

**Criar uma função do Lambda**

1. Abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha **Create function** (Criar função).

1. Escolha **Author from scratch** (Criar do zero).

1. Digite um nome e uma descrição para a função Lambda. Por exemplo, atribua à função o nome `LogEC2InstanceStateChange`.

1. Deixe o resto das opções como padrão e escolha **Criar função**.

1. Na guia **Código** da página da função, clique duas vezes em **index.js**.

1. Substitua o código existente pelo código a seguir.

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogEC2InstanceStateChange');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Escolha **Deploy (Implantar)**.

## Etapa 2: Criar uma regra
<a name="eb-ec2-create-rule"></a>

Crie uma regra para executar a função do Lambda criada na etapa 1. A regra é executada quando você iniciará uma instância do Amazon EC2.

**Para criar a EventBridge regra**

1. Abra o EventBridge console da Amazon em [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. No painel de navegação, escolha **Regras**.

1. Escolha **Create rule**.

1. Insira um nome e uma descrição para a regra. Por exemplo, nomeie a regra como `TestRule`

1. Em **Barramento de Eventos**, escolha o barramento de eventos que você deseja associar a essa regra. Se quiser que essa regra faça a correspondência com eventos provenientes da sua conta, selecione **padrão**. Quando um serviço da AWS em sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

1. Em **Rule type**, escolha **Rule with an event pattern**.

1. Selecione **Next** (Próximo).

1. Em **Fonte do evento**, selecione **Serviços da AWS **.

1. Em **Event pattern** (Padrão de evento), faça o seguinte:

   1. Em **Origem do evento,** selecione **EC2** na lista suspensa.

   1. Em **Tipo de evento**, escolha **Notificação de mudança de estado da instância do EC2** na lista suspensa.

   1. Escolha **Estados específicos** e escolha **em execução** na lista suspensa.

   1. Escolha **Qualquer instância**

1. Escolha **Próximo**.

1. Em **Tipos de destino**, escolha **Serviço da AWS **.

1. Em **Selecionar um destino**, escolha a **função do Lambda** na lista suspensa.

1. Em **Função**, selecione a função do Lambda criada na seção **Etapa 1: criar uma função do Lambda**. Neste exemplo, selecione `LogEC2InstanceStateChange`.

1. Escolha **Próximo**.

1. Escolha **Próximo**.

1. Analise os detalhes da regra e selecione **Criar regra**.

## Etapa 3: Testar a regra
<a name="eb-api-test-rule"></a>

Você pode testar a regra ao interromper uma instância do Amazon EC2 usando o console do Amazon EC2. Aguarde alguns minutos até que a instância pare e, em seguida, verifique suas AWS Lambda métricas no CloudWatch console para verificar se sua função foi executada.

**Como testar a regra ao parar uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Execute uma instância. Para obter mais informações, consulte [Iniciar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) no *Manual do usuário do Amazon EC2*.

1. Pare a instância. Para obter mais informações, consulte [Início e interrupção de instâncias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) no *Manual do usuário do Amazon EC2*.

1. Para visualizar a saída da função do Lambda, faça o seguinte:

   1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

   1. No painel de navegação, selecione **Logs**.

   1. Selecione o nome do grupo de logs para sua função do Lambda (`/aws/lambda/function-name`).

   1. Selecione o nome do fluxo de logs para visualizar os dados fornecidos pela função para a instância que você interrompeu.

1. (Opcional) Ao terminar, encerre a instância interrompida. Para obter mais informações, consulte [Encerramento de instâncias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*.

## Etapa 4: confirmar o êxito
<a name="success"></a>

Se você ver o evento Lambda nos CloudWatch registros, concluiu com êxito este tutorial. Se o evento não estiver em seus CloudWatch registros, comece a solucionar problemas verificando se a regra foi criada com sucesso e, se a regra parecer correta, verifique se o código da sua função Lambda está correto.

## Etapa 5: limpar os recursos
<a name="cleanup"></a>

Agora você pode excluir os recursos criados para este tutorial, a menos que queira mantê-los. Ao excluir AWS recursos que você não está mais usando, você evita cobranças desnecessárias em sua AWS conta.

**Para excluir a (s) EventBridge regra (s)**

1. Abra a [página Regras](https://console.aws.amazon.com/events/home#/rules) do EventBridge console.

1. Selecione as regras que foram criadas.

1. Escolha **Excluir**.

1. Escolha **Excluir**.

**Para excluir as funções do Lambda**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Selecione as funções que foram criadas.

1. Selecione **Ações**, **Excluir**.

1. Escolha **Excluir**.