Usar o Amazon SQS, o Amazon SNS e o Lambda
A habilitação de notificações é uma operação no nível do bucket. Você armazena informações de configuração de notificação no sub-recurso de notificação que está associado a um bucket. Depois que você cria ou altera a configuração de notificação de bucket, normalmente é necessário aguardar cinco minutos para que as alterações entrem em vigor. Ocorre um s3:TestEvent
quando a notificação é habilitada pela primeira vez. Você pode usar qualquer um dos métodos a seguir para gerenciar a configuração de notificação:
-
Usar o console do Amazon S3: você pode usar a interface de usuário do console para definir uma configuração de notificação em um bucket sem ter que escrever nenhum código. Para obter mais informações, consulte Habilitar e configurar notificações de eventos usando o console do Amazon S3.
-
Uso dos AWS SDKs de forma programática: internamente, tanto o console como os SDKs chamam a API REST do Amazon S3 para gerenciar sub-recursos de notificação que estão associados ao bucket. Para obter exemplos de configurações de notificação usando exemplos do AWS SDK, consulte Demonstração: configurar um bucket para notificações (tópico do SNS ou fila do SQS).
nota
Você também pode fazer chamadas de API REST do Amazon S3 diretamente do seu código. Porém, isso pode ser complicado, porque é necessário gravar o código para autenticar suas solicitações.
Independentemente do método usado, o Amazon S3 armazena a configuração de notificação como XML no sub-recurso notification (notificação) que está associado a um bucket. Para obter informações sobre sub-recursos de bucket, consulte Opções de configuração do bucket.
nota
Se você tiver várias notificações de eventos de falha devido a destinos excluídos, poderá receber a mensagem Não é possível validar as seguintes configurações de destino ao tentar excluí-las. É possível resolver isso no console do S3 excluindo todas as notificações de falha ao mesmo tempo.
Tópicos
- Conceder permissões para publicar mensagens de notificação de vento a um destino
- Habilitar e configurar notificações de eventos usando o console do Amazon S3
- Configuração de notificações de eventos de forma programática
- Demonstração: configurar um bucket para notificações (tópico do SNS ou fila do SQS)
- Configurar notificações de eventos usando filtragem de nomes de chave de objeto
- Estrutura de mensagens de evento
Configuração de notificações de eventos de forma programática
Por padrão, as notificações não estão habilitadas para nenhum tipo de evento. Portanto, o sub-recurso notification (notificação) armazena inicialmente uma configuração vazia.
<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </NotificationConfiguration>
Para habilitar notificações para eventos de tipos específicos, você substitui o XML pela configuração apropriada que identifica os tipos de evento que deseja que o Amazon S3 publique e o destino onde deseja que os eventos sejam publicados. Para cada destino, você adiciona uma configuração correspondente de XML.
Para publicar mensagens de eventos em uma fila do SQS
Para definir uma fila do SQS como o destino de notificação para um ou mais tipos de evento, adicione o QueueConfiguration
.
<NotificationConfiguration> <QueueConfiguration> <Id>
optional-id-string
</Id> <Queue>sqs-queue-arn
</Queue> <Event>event-type
</Event> <Event>event-type
</Event> ... </QueueConfiguration> ... </NotificationConfiguration>
Para publicar mensagens de eventos em um tópico do SNS
Para definir um tópico do SNS como o destino de notificação para tipos de eventos específicos, adicione o TopicConfiguration
.
<NotificationConfiguration> <TopicConfiguration> <Id>
optional-id-string
</Id> <Topic>sns-topic-arn
</Topic> <Event>event-type
</Event> <Event>event-type
</Event> ... </TopicConfiguration> ... </NotificationConfiguration>
Para invocar a função do AWS Lambda e fornecer uma mensagem de evento como um argumento
Para definir uma função do Lambda como o destino de notificação para tipos de evento específicos, adicione o CloudFunctionConfiguration
.
<NotificationConfiguration> <CloudFunctionConfiguration> <Id>
optional-id-string
</Id> <CloudFunction>cloud-function-arn
</CloudFunction> <Event>event-type
</Event> <Event>event-type
</Event> ... </CloudFunctionConfiguration> ... </NotificationConfiguration>
Para remover todas as notificações configuradas em um bucket
Para remover todas as notificações configuradas em um bucket, salve um elemento <NotificationConfiguration/>
vazio no sub-recurso notificação.
Quando o Amazon S3 detecta um evento do tipo específico, ele publica uma mensagem com as informações do evento. Para obter mais informações, consulte Estrutura de mensagens de evento.
Para obter mais informações sobre como configurar notificações de eventos, consulte os seguintes tópicos: