Eu criei uma notificação de evento do Amazon Simple Storage Service (Amazon S3) para enviar mensagens por meio do meu tópico do Amazon Simple Notification Service (Amazon SNS). No entanto, as novas notificações de eventos no meu bucket do Amazon S3 não publicaram mensagens no tópico do Amazon SNS.
Resolução
Confirme se configurou corretamente o tipo de evento do Amazon S3
Ao configurar uma notificação de evento do Amazon S3, você deve especificar os tipos de eventos do Amazon S3 compatíveis que fazem com que o Amazon S3 envie a notificação. Se um tipo de evento que você não especificou ocorrer em seu bucket do Amazon S3, o Amazon S3 não enviará a notificação.
Confirme se os filtros de nome de chave de objeto estão no formato codificado em URL
Se você configurou suas notificações de eventos para usar o filtro de nomes de chaves de objetos, o Amazon S3 publica notificações somente para objetos com prefixos ou sufixos específicos.
Se você usar caracteres especiais em seus prefixos ou sufixos, substitua os espaços pelo caractere “+”. Insira todos os outros caracteres especiais no formato codificado em URL (codificado em porcentagem). Para obter mais informações, consulte Diretrizes de nomeação de chave de objeto e Trabalhar com metadados de objeto.
Observação: não é possível usar um caractere curinga ("*") nos filtros como prefixo ou sufixo para representar um caractere.
Confirme se você concedeu as permissões necessárias ao Amazon S3
A política baseada em recursos do seu tópico do Amazon SNS deve permitir que o bucket do Amazon S3 publique mensagens no tópico. Verifique a política do AWS Identity and Access Management (AWS IAM) do seu tópico para confirmar se ele tem as permissões necessárias e conceda permissões, se for o caso.
Confirme se o tópico tem permissões do AWS KMS para tópicos criptografados com SSE
Se você ativou a criptografia do lado do servidor (SSE) em seu tópico do SNS, este deverá usar uma chave do AWS Key Management (AWS KMS) gerenciada pelo cliente. O Amazon S3 não pode publicar tópicos com a chave padrão gerenciada pela AWS (alias/aws/sns). A chave do AWS KMS deve incluir uma política de chave personalizada que conceda ao Amazon S3 permissão para usar a chave.
Para configurar as permissões necessárias do AWS KMS, conclua as etapas a seguir:
-
Crie uma nova política de chave e uma nova chave do AWS KMS gerenciada pelo cliente.
-
Edite a política de chave e inclua uma declaração para permitir que o Amazon S3 publique mensagens em seu tópico criptografado do SNS semelhante ao seguinte:
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}
]
}
- Use a chave do AWS KMS para configurar o SSE para seu tópico do Amazon SNS.
Aguarde um tempo para a entrega da notificação
Em geral, o Amazon S3 entrega notificações de eventos em segundos, mas pode levar um minuto ou mais.
Use as métricas do CloudWatch para solucionar problemas adicionais
Se o tópico do SNS ainda não receber a notificação do evento Amazon S3, verifique a métrica NumberOfMessagePublished do Amazon CloudWatch para SNS. Essa métrica mostra se o Amazon S3 publicou os eventos. Se não houver métrica de NumberOfMessagePublished, então há um problema com a configuração do Amazon S3 para o Amazon SNS.
Se houver métricas para NumberOfMessagePublished, verifique as métricas NumberOfNotificationsDelivered e NumberOfNotificationsFailed. Essas métricas mostram se o tópico do SNS entregou as mensagens a um endpoint de assinatura.
Para ajudar a solucionar problemas, também é possível configurar o registro em log do status de entrega para tópicos do SNS.
Informações relacionadas
Demonstração: configurar um bucket para notificações (tópico do SNS ou fila do SQS). Em geral, o Amazon S3 entrega notificações de eventos em segundos, mas pode levar um minuto ou mais.