Tutorial: criar uma regra do EventBridge que reaja às chamadas de API da AWS por meio do CloudTrail
É possível usar as regras do Amazon EventBridge para reagir às chamadas de API feitas por um serviço da AWS que são registradas pelo AWS CloudTrail.
Neste tutorial, é criada uma trilha do AWS CloudTrail, uma função do Lambda e uma regra no console do EventBridge. A regra invoca a função do Lambda quando uma instância do Amazon EC2 é interrompida.
Etapas:
Etapa 1: criar uma trilha do AWS CloudTrail
Se já tiver uma trilha configurada, avance para a etapa 5.
Para criar uma trilha
Abra o console do CloudTrail em https://console.aws.amazon.com/cloudfront/
. -
Selecione Trails (Trilhas), Create trail (Criar trilha).
-
Em Nome da trilha, digite um nome para a trilha.
-
Em Local de armazenamento, em Criar um novo bucket do S3.
-
Em alias do AWS KMS, digite um alias para a chave do KMS.
-
Escolha Próximo.
-
Escolha Próximo.
-
Escolha Create Trail (Criar trilha).
Etapa 2: criar uma função do AWS Lambda
Crie uma função do Lambda para registrar os eventos de chamada de API.
Como criar uma função do Lambda
Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/
. -
Escolha Create function.
-
Escolha Author from scratch (Criar do zero).
-
Digite um nome e uma descrição para a função Lambda. Por exemplo, atribua à função o nome
LogEC2StopInstance. -
Deixe o resto das opções como padrão e escolha Criar função.
-
Na guia Código da página da função, clique duas vezes em index.js.
-
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'); }; -
Escolha Implantar.
Etapa 3: criar uma regra
Crie uma regra para executar a função do Lambda criada na etapa 2 sempre que interromper uma instância do Amazon EC2.
Como criar uma regra
Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/
. -
No painel de navegação, escolha Regras.
-
Escolha Create rule.
-
Insira um nome e uma descrição para a regra. Por exemplo, nomeie a regra como
TestRule -
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.
-
Em Rule type, escolha Rule with an event pattern.
-
Selecione Next (Próximo).
-
Em Fonte do evento, selecione Serviços da AWS.
-
Em Event pattern (Padrão de evento), faça o seguinte:
-
Em Origem do evento, selecione EC2 na lista suspensa.
-
Em Tipo de evento, selecione Chamada de AWS API via CloudTrail na lista suspensa.
-
Escolha Operações específicas e insira
StopInstances.
-
-
Escolha Próximo.
-
Em Tipos de destino, escolha Serviço da AWS.
-
Em Selecionar um destino, escolha a função do Lambda na lista suspensa.
-
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. -
Escolha Próximo.
-
Escolha Próximo.
-
Analise os detalhes da regra e selecione Criar regra.
Etapa 4: testar a regra
Você pode testar a regra ao interromper uma instância do Amazon EC2 usando o console do Amazon EC2. Espere alguns minutos pela interrupção da instância e confira suas métricas do AWS Lambda no console do CloudWatch para verificar se sua função foi executada.
Como testar a regra ao parar uma instância
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
Execute uma instância. Para obter mais informações, consulte Iniciar uma instância no Manual do usuário do Amazon EC2.
-
Pare a instância. Para obter mais informações, consulte Início e interrupção de instâncias no Manual do usuário do Amazon EC2.
-
Para visualizar a saída da função do Lambda, faça o seguinte:
Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, selecione Logs.
-
Selecione o nome do grupo de logs para sua função do Lambda (
/aws/lambda/).function-name -
Selecione o nome do fluxo de logs para visualizar os dados fornecidos pela função para a instância que você interrompeu.
-
(Opcional) Ao terminar, encerre a instância interrompida. Para obter mais informações, consulte Encerramento de instâncias no Guia do usuário do Amazon EC2.
Etapa 5: confirmar o êxito
Se vir o evento Lambda nos registros do CloudWatch, este tutorial foi concluído com com êxito. Se o evento não estiver nos seus logs do CloudWatch, comece a solucionar problemas verificando se a regra foi criada com êxito e, se a regra parecer correta, verifique se o código da sua função do Lambda está correto.
Etapa 6: limpar os recursos
Agora você pode excluir os recursos criados para este tutorial, a menos que queira mantê-los. Ao excluir os recursos da AWS que não estão mais sendo usados, são evitadas cobranças desnecessárias em sua conta da AWS.
Para excluir as regras do EventBridge
-
Abra a página Regras
no console do EventBridge. -
Selecione as regras que foram criadas.
-
Escolha Excluir.
-
Escolha Excluir.
Para excluir as funções do Lambda
-
Abra a página Funções
do console do Lambda. -
Selecione as funções que foram criadas.
-
Selecione Ações, Excluir.
-
Escolha Excluir.
Para excluir as trilhas do CloudTrail
-
Abra a página Trails
(Trilhas) do console do CloudTrail. -
Selecione as trilhas que foram criadas.
-
Escolha Excluir.
-
Escolha Excluir.