

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: crie uma EventBridge regra que reaja às chamadas de AWS API via CloudTrail
<a name="eb-log-api-call"></a>

Você pode usar EventBridge [as regras](eb-rules.md) da Amazon para reagir às chamadas de API feitas por um AWS serviço que são registradas por AWS CloudTrail.

Neste tutorial, você cria uma [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)trilha, uma função Lambda e uma regra no EventBridge console. A regra invoca a função do Lambda quando uma instância do Amazon EC2 é interrompida.

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

## Etapa 1: criar uma AWS CloudTrail trilha
<a name="eb-log-api-create-ct-trail"></a>

Se já tiver uma trilha configurada, avance para a etapa 5.

**Para criar uma trilha**

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

1. Selecione **Trails (Trilhas)**, **Create trail (Criar trilha)**.

1. Em **Nome da trilha**, digite um nome para a trilha.

1. Em **Local de armazenamento**, em **Criar um novo bucket do S3**.

1. Em **alias do AWS KMS **, digite um alias para a chave do KMS.

1. Escolha **Próximo**.

1. Escolha **Próximo**.

1. Escolha **Create Trail (Criar trilha)**.

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

Crie uma função do Lambda para registrar os eventos de chamada de API. 

**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 `LogEC2StopInstance`.

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('LogEC2StopInstance');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Escolha **Implantar**.

## Etapa 3: criar uma regra
<a name="eb-api-create-rule"></a>

Crie uma regra para executar a função do Lambda criada na etapa 2 sempre que interromper uma instância do Amazon EC2.

**Para criar uma regra do**

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. Para **Tipo de evento**, selecione **AWS API Call via** na CloudTrail lista suspensa.

   1. Escolha **Operações específicas** e insira `StopInstances`.

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 `LogEC2StopInstance`.

1. Escolha **Próximo**.

1. Escolha **Próximo**.

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

## Etapa 4: 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 5: 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 6: 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**.

**Para excluir a (s) CloudTrail trilha (s)**

1. Abra a [página Trilhas](https://console.aws.amazon.com/cloudtrail/home#/trails) do CloudTrail console.

1. Selecione as trilhas que foram criadas.

1. Escolha **Excluir**.

1. Escolha **Excluir**.