Tipos e destinos de notificações de evento
O Amazon S3 oferece suporte a vários tipos de notificação de eventos e destinos nos quais as notificações podem ser publicadas. Você pode especificar o tipo de evento e o destino ao configurar suas notificações de eventos. Somente um destino pode ser especificado para cada notificação de evento. As notificações de eventos do Amazon S3 enviam uma entrada de evento para cada mensagem de notificação.
Tópicos
Destinos de eventos suportados
O Amazon S3 pode enviar mensagens de notificação de eventos aos seguintes destinos.
-
Amazon Simple Notification Service (Amazon SNS) topics
-
Filas do Amazon Simple Queue Service (Amazon SQS)
-
AWS Lambda
-
Amazon EventBridge
No entanto, somente um tipo de destino pode ser especificado para cada notificação de evento.
nota
Você deve conceder ao Amazon S3 permissões para postar mensagens em um tópico do Amazon SNS ou em uma fila do Amazon SQS. Você também deve conceder permissão ao Amazon S3 para invocar uma função do AWS Lambda em seu nome. Para obter instruções sobre como conceder essas permissões, consulte Conceder permissões para publicar mensagens de notificação de vento a um destino.
Tópico do Amazon SNS
O Amazon SNS é um serviço de mensagens por push flexível e totalmente gerenciado. Você pode usar esse serviço para enviar mensagens por push para dispositivos móveis ou serviços distribuídos. Com o SNS, você pode publicar uma mensagem uma vez e entregá-la uma ou mais vezes. Atualmente, o SNS padrão só é permitido como um destino de notificação de eventos do S3, enquanto o SNS FIFO não é permitido.
O Amazon SNS coordena e gerencia o envio e a entrega de mensagens para endpoints ou clientes assinantes. Você pode usar o console do Amazon SNS para criar um tópico do Amazon SNS para o qual suas notificações podem ser enviadas.
O tópico deve estar na mesma Região da AWS que o bucket do Amazon S3. Para obter instruções sobre como criar um tópico do Amazon SNS, consulte Conceitos básicos do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service e as Perguntas frequentes do Amazon SNS
Antes de poder usar o tópico do Amazon SNS criado como um destino de notificação de evento, você precisará de:
-
O Nome de recurso da Amazon (ARN) do tópico do Amazon SNS
-
Uma assinatura válida do tópico do Amazon SNS. Com ela, os assinantes do tópico são notificados quando uma mensagem é publicada em seu tópico do Amazon SNS.
Fila do Amazon SQS
O Amazon SQS oferece filas hospedadas confiáveis e escaláveis para o armazenamento de mensagens à medida que transitam entre computadores. Você pode usar o Amazon SQS para transmitir qualquer volume de dados sem exigir que outros serviços estejam sempre disponíveis. Você pode usar o console do Amazon SQS para criar uma fila do Amazon SQS para a qual suas notificações podem ser enviadas.
A fila do Amazon SQS deve estar na mesma Região da AWS que o bucket do Amazon S3. Para obter instruções sobre como criar uma fila do Amazon SQS, consulte O que é o Amazon Simple Queue Service e Conceitos básicos do Amazon SQS no Guia do desenvolvedor do Amazon Simple Queue Service.
Antes de poder usar a fila do Amazon SQS como um destino de notificação de evento, você precisa do seguinte:
-
O nome do recurso da Amazon (ARN) da fila do Amazon SQS
nota
As filas FIFO (primeiro entrar, primeiro a sair) do Amazon Simple Queue Service não são compatíveis como destino de notificação de evento do Amazon S3. Para enviar uma notificação de um evento do Amazon S3 para uma fila FIFO do Amazon SQS, você pode usar o Amazon EventBridge. Para obter mais informações, consulte Habilitar o Amazon EventBridge.
Função Lambda
É possível usar o AWS Lambda para estender outros produtos da AWS com lógica personalizada ou criar seu próprio backend que opere de acordo com a escala, a performance e a segurança da AWS. Com o Lambda, é possível criar aplicações discretas orientadas por eventos que são executadas somente quando necessário. Você também pode usá-lo para escalar essas aplicações automaticamente de poucas solicitações por dia a milhares por segundo.
O Lambda pode executar código personalizado em resposta a eventos do bucket do Amazon S3. Carregue o código personalizado no Lambda e crie o que é chamado de função Lambda. Quando o Amazon S3 detecta um evento de um tipo específico, ele pode publicar o evento no AWS Lambda e invocar sua função no Lambda. Em resposta, o Lambda executa a função. Um tipo de evento que ele pode detectar, por exemplo, é um evento criado por objeto.
Você pode usar o console do AWS Lambda para criar uma função do Lambda que use a infraestrutura da AWS para executar o código em seu nome. A função do Lambda deve estar na mesma região que seu bucket do S3. Você também deve ter o nome ou o ARN de uma função do Lambda para configurar a função do Lambda como um destino de notificação de evento.
Atenção
Se a notificação for gravada no mesmo bucket que aciona a notificação, isso poderá causar um loop de execução. Por exemplo, se o bucket acionar uma função do Lambda toda vez que houver um upload de objeto, e a função fizer upload de um objeto no bucket, a função será acionada indiretamente. Para evitar isso, use dois buckets ou configure o trigger para só se aplicar a um prefixo usado em objetos recebidos.
Para obter mais informações e um exemplo de uso de notificações do Amazon S3 com AWS Lambda, consulte Uso do AWS Lambda com o Amazon S3 no Guia do desenvolvedor do AWS Lambda.
Amazon EventBridge
O Amazon EventBridge é um barramento de eventos sem servidor, que recebe eventos de produtos da AWS. É possível configurar regras para corresponder a eventos e entregá-los a destinos, como um produto da AWS ou um endpoint de HTTP. Para obter mais informações, consulte O que é o EventBridge no Guia do usuário do Amazon EventBridge.
Ao contrário de outros destinos, você pode habilitar ou desabilitar eventos a serem entregues ao EventBridge para um bucket. Se você habilitar a entrega, todos os eventos serão enviados ao EventBridge. Além disso, você pode usar regras do EventBridge para encaminhar eventos para outros destinos.
Tipos de evento compatíveis com SQS, SNS e Lambda
O Amazon S3 pode publicar eventos dos seguintes tipos. Você especifica esses tipos de evento na configuração de notificação.
Tipos de evento | Descrição |
---|---|
|
Quando uma notificação é habilitada, o Amazon S3 publica uma notificação de teste. Isso serve para verificar se o tópico existe e se o proprietário do bucket tem permissão para publicar o tópico especificado. Se a ativação da notificação falhar, você não receberá a notificação de teste. |
|
As operações de API do Amazon S3, como
|
|
Usando os tipos de evento Você pode solicitar uma notificação quando um objeto for excluído ou quando um objeto com versionamento for excluído permanentemente usando o tipo de evento Essas notificações de eventos não alertam sobre exclusões automáticas de configurações de ciclo de vida ou operações que falharam. |
|
Com os tipos de evento O tipo de evento |
s3:ReducedRedundancyLostObject |
Você recebe esse evento de notificação quando o Amazon S3 detecta que um objeto da classe de armazenamento RRS foi perdido. |
|
Com tipos de evento
|
|
Ao usar os tipos de evento O tipo de evento |
s3:LifecycleTransition |
Você recebe esse evento de notificação quando um objeto é transferido para outra classe de armazenamento do Amazon S3 por uma configuração do S3 Lifecycle. |
s3:IntelligentTiering |
Você recebe esse evento de notificação quando um objeto dentro da classe de armazenamento S3 Intelligent-Tiering for movido para o nível de acesso de arquivo ou para o nível de acesso de arquivo profundo. |
|
Usando os tipos de evento O tipo de evento |
s3:ObjectAcl:Put |
Você recebe esse evento de notificação quando ocorre PUT de uma ACL em um objeto ou quando uma ACL existente é alterada. Não é gerado evento quando uma solicitação não resulta em alteração na ACL de um objeto. |
Tipos de evento compatíveis com o Amazon EventBridge
Para obter uma lista de tipos de eventos que o Amazon S3 enviará ao Amazon EventBridge, consulte Usar o EventBridge.
Ordenação de eventos e eventos duplicados
As notificações de eventos do Amazon S3 foram projetadas para entregar notificações pelo menos um dia, mas não há garantia de que cheguem na mesma ordem em que os eventos ocorreram. Em raras ocasiões, o mecanismo de nova tentativa do Amazon S3 pode causar notificações de eventos do S3 duplicadas para o mesmo evento de objeto. Consulte mais informações sobre como lidar com eventos duplicados ou fora de ordem em Manage event ordering and duplicate events with Amazon S3 Event Notifications