Tipos e destinos de notificações de evento - Amazon Simple Storage Service

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.

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

s3:TestEvent

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.

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

As operações de API do Amazon S3, como PUT, POST e COPY, podem criar um objeto. Com esses tipos de evento, você pode habilitar notificações quando um objeto é criado usando uma operação de API específica. Se preferir, você pode usar o tipo de evento s3:ObjectCreated:* para solicitar notificação, qualquer que seja a API usada para criar um objeto.

s3:ObjectCreated:CompleteMultipartUpload inclui objetos criados usando UploadPartCopy para operações de cópia.

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

Usando os tipos de evento ObjectRemoved, é possível habilitar a notificação quando um objeto ou um lote de objetos é removido de um bucket.

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 s3:ObjectRemoved:Delete. Se preferir, você pode solicitar uma notificação quando um marcador de exclusão for criado para um objeto com versionamento usando s3:ObjectRemoved:DeleteMarkerCreated. Para obter instruções sobre como excluir objetos com versionamento, consulte Excluir versões de objetos de um bucket com versionamento habilitado. Você também pode usar um caractere curinga s3:ObjectRemoved:* para solicitar uma notificação sempre que um objeto for excluído.

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.

s3:ObjectRestore:*

s3:ObjectRestore:Post

s3:ObjectRestore:Completed

s3:ObjectRestore:Delete

Com os tipos de evento ObjectRestore, é possível receber notificações de iniciação e conclusão de eventos ao restaurar objetos das classes de armazenamento S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive, nível de acesso S3 Intelligent-Tiering Archive e nível de acesso S3 Intelligent-Tiering Deep Archive. Você também pode receber notificações quando a cópia restaurada de um objeto expirar.

O tipo de evento s3:ObjectRestore:Post notifica você sobre o início da restauração de objetos. O tipo de evento s3:ObjectRestore:Completed notifica você sobre a conclusão da restauração. O tipo de evento s3:ObjectRestore:Delete notifica você quando a cópia temporária de um objeto restaurado expira.

s3:ReducedRedundancyLostObject Você recebe esse evento de notificação quando o Amazon S3 detecta que um objeto da classe de armazenamento RRS foi perdido.

s3:Replication:*

s3:Replication:OperationFailedReplication

s3:Replication:OperationMissedThreshold

s3:Replication:OperationReplicatedAfterThreshold

s3:Replication:OperationNotTracked

Com tipos de evento Replication, é possível receber notificações de configurações de replicação com métricas de replicação do S3 ou o Controle de Tempo de Replicação do S3 (S3 RTC) habilitados. Você pode monitorar o progresso minuto a minuto de eventos de replicação, rastreando bytes pendentes, operações pendentes e latência de replicação. Para obter informações sobre métricas de replicação, consulte Monitorar a replicação com métricas, notificações de eventos e status.

  • O tipo de evento s3:Replication:OperationFailedReplication notifica você quando um objeto qualificado para replicação falhou ao replicar.

  • O tipo de evento s3:Replication:OperationMissedThreshold notifica você quando um objeto qualificado para replicação e que usa o S3 RTC excede o limite de 15 minutos para replicação.

  • O tipo de evento s3:Replication:OperationReplicatedAfterThreshold notifica você quando um objeto qualificado para replicação e que usa o S3 RTC replica após o limite de 15 minutos.

  • O tipo de evento s3:Replication:OperationNotTracked notifica você quando um objeto qualificado para replicação em tempo real [replicação na mesma região (SRR) ou replicação entre regiões (CRR)] não está mais sendo monitorado por métricas de replicação.

s3:LifecycleExpiration:*

s3:LifecycleExpiration:Delete

s3:LifecycleExpiration:DeleteMarkerCreated

Ao usar os tipos de evento LifecycleExpiration, você poderá receber uma notificação sempre que o Amazon S3 excluir um objeto com base na configuração de ciclo de vida do S3.

O tipo de evento s3:LifecycleExpiration:Delete notifica você quando um objeto em um bucket sem versionamento é excluído. Ele também notifica quando uma versão de objeto é excluída permanentemente por uma configuração do S3 Lifecycle. O tipo de evento s3:LifecycleExpiration:DeleteMarkerCreated notifica você quando o S3 Lifecycle cria um marcador de exclusão quando uma versão atual de um objeto no bucket com versionamento é excluída.

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.

s3:ObjectTagging:*

s3:ObjectTagging:Put

s3:ObjectTagging:Delete

Usando os tipos de evento ObjectTagging, é possível habilitar a notificação quando uma tag de objeto é adicionada ou excluída de um objeto.

O tipo de evento s3:ObjectTagging:Put notifica você quando ocorre PUT de uma etiqueta em um objeto ou quando uma etiqueta existente é atualizada. O tipo de evento s3:ObjectTagging:Delete notifica você quando uma etiqueta é removida de um objeto.

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 no Blog de armazenamento do AWS.