Quiero que se llame a un determinado servicio HTTPS cada vez que se cargue un archivo en un depósito de S3.
Creé el depósito S3 y un tema SNS con una suscripción verificada con el servicio HTTPS como punto final. Puedo publicar un mensaje sobre el tema SNS a través de la interfaz de usuario de AWS y ver que el servicio HTTPS se llama como se esperaba. En el depósito S3, creé un evento, que debería vincular el depósito y el tema. En mi primer intento, recibí un error porque el depósito no podía escribir en el tema, así que cf la documentación, cambié la política de acceso al tema a:
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "sns:Publish", "Resource": "arn:aws:sns:eu-central-1:TOPIC_ID:OrderUpdates", "Condition": { "StringEquals": { "AWS:SourceAccount": "ACCOUNT_ID" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:*:*:*" } } } ] } donde TOPIC_ID es la identificación del propietario del tema que se puede ver cuando el tema se muestra en la interfaz de usuario de AWS, y ACCOUNT_ID es la identificación de la cuenta que se muestra en la configuración de la cuenta en la interfaz de usuario de AWS. Este cambio en la política de acceso al tema me permitió crear el evento en el depósito: 
Cuando llamo al método de API getBucketNotificationConfiguration obtengo:
{ "TopicConfigurations": [ { "Id": "OrderFulfilled", "TopicArn": "arn:aws:sns:eu-central-1:TOPIC_ID:OrderUpdates", "Events": [ "s3:ObjectCreated:*" ] } ], "QueueConfigurations": [], "LambdaFunctionConfigurations": [] }Pero no se llama al servicio HTTPS. ¿Qué me estoy perdiendo en esta configuración, que activará el servicio HTTPS para que la suscripción al tema SNS llame cada vez que se cargue un archivo en el depósito S3?
Gracias, -Louise
Tener el mismo problema S3 upload event no activa el mensaje sns aunque nuestra política de acceso sns esté configurada correctamente. Resulta que NO podemos usar la opción Enable encryption , ya que los eventos de S3 se activan a través de las alarmas de CloudWatch que, a partir de ahora, no funcionan con temas cifrados de SNS.
Vuelva a la opción Desactivar cifrado , todo vuelve a funcionar.
Para reproducir esta situación, hice lo siguiente:
Recibí este mensaje de error:
No se pueden validar las siguientes configuraciones de destino. Los permisos en el tema de destino no permiten que S3 publique notificaciones de este depósito.
Pruebas
Por lo tanto, parece que su configuración debería habilitar con éxito el envío de un mensaje a través de Amazon SNS. Esto sugiere que el problema radica en la suscripción HTTPS , ya sea al enviarlo desde SNS o al recibirlo en la aplicación.
Le recomiendo que agregue una suscripción de correo electrónico o SMS para verificar si Amazon SNS recibe el tema y lo reenvía a los suscriptores. Si esto funciona correctamente, deberá depurar la recepción del mensaje en la aplicación HTTPS.
Debe agregar TopicConfiguration
Obtenga más información sobre cómo habilitar la notificación de eventos