Tutorial: registrar operações no nível do objeto do Amazon S3 usando o EventBridge
É possível registrar as operações de API no nível do objeto em seus buckets do Amazon S3. Para que o Amazon EventBridge possa fazer a correspondência com esses eventos, é preciso usar o AWS CloudTrail para configurar uma trilha para receber esses eventos.
Neste tutorial, é criada uma uma trilha do CloudTrail, uma função do AWS Lambda e uma regra no console do EventBridge que invoca essa função em resposta a um evento de dados do S3.
Etapas:
Etapa 1: Configurar a trilha do AWS CloudTrail
Para registrar os eventos de dados de um bucket do S3 no AWS CloudTrail e no EventBridge, primeiro crie uma trilha. A trilha captura chamadas de API e eventos relacionados em sua conta e fornece os arquivos de log para um bucket do S3 especificado. É possível atualizar uma trilha existente ou criar uma.
Para obter mais informações, consulte Eventos de dados, no Guia do usuário do AWS CloudTrail.
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.
-
Em Tipo de evento, escolha Eventos de dados.
-
Em Eventos de dados, siga um destes procedimentos:
-
Para registrar eventos de dados de todos os objetos do Amazon S3 em um bucket, especifique um bucket do S3 e um prefixo vazio. Quando ocorre um evento em um objeto nesse bucket, a trilha processa e registra o evento.
-
Para registrar eventos de dados de objetos específicos do Amazon S3 em um bucket, especifique um bucket do S3 e o prefixo do objeto. Quando ocorre um evento em um objeto nesse bucket e o objeto começa com o prefixo especificado, a trilha processa e registra o evento.
-
-
Para cada recurso, especifique se deseja registrar em log os eventos de Leitura, Gravação ou ambos.
-
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 dados de seus buckets do S3.
Como criar uma função do Lambda
Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/
. -
Escolha Create function (Criar função).
-
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
LogS3DataEvents
. -
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('LogS3DataEvents'); 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. Esta regra é executada em resposta a um evento de dados do Amazon S3.
Para criar uma regra do
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 Tipo de Regra, escolha Regra com Padrão de Evento.
-
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 Simple Storage Service (S3) na lista suspensa.
-
Em Tipo de evento, selecione Chamada de API no nível de objeto via CloudTrail na lista suspensa.
-
Escolha Specific operation(s) (Operações específicas) e, em seguida, escolha PutObject.
-
Por padrão, a regra corresponde a eventos de dados para todos os buckets na região. Para corresponder eventos de dados a buckets específicos, escolha Especificar bucket(s) pelo nome e, depois, especifique um ou mais buckets.
-
-
Escolha Next (Avançar).
-
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
LogS3DataEvents
criada na etapa 1. -
Escolha Próximo.
-
Escolha Próximo.
-
Analise os detalhes da regra e selecione Criar regra.
Etapa 4: Testar a regra
Para testar a regra, coloque um objeto no seu bucket do S3. Você pode verificar se a sua função do Lambda foi chamada.
Para visualizar os logs da sua função do Lambda
-
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ê iniciou.
Também é possível conferir o conteúdo dos logs do CloudTrail no bucket do S3 especificado para a trilha. Para obter mais informações, consulte Obtenção e exibição dos seus arquivos de log do CloudTrail no Guia do usuário do AWS CloudTrail.
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.
-
Escolha 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.