La función de notificación de Amazon S3 le permite recibir notificaciones cuando ocurre un determinado evento dentro de su depósito. Para recibir notificaciones, primero, agregue una configuración de notificación que lea el evento que desea que Amazon S3 publique y los destinos donde Amazon S3 enviará las notificaciones. Esta configuración se almacena en el subrecurso de notificación que está asociado con un depósito.
Tipos de notificaciones de eventos:
Actualmente, Amazon S3 puede publicar notificaciones para los siguientes eventos admitidos:
- Eventos de creación de objetos nuevos : Amazon S3 envía una notificación cuando se crea un objeto. Admite múltiples API para crear objetos como Put, Post, Copy y Multipart Upload. También podemos usar un comodín (s3:ObjectCreated:*) si alguno de los objetos crea un evento.
- Eventos de eliminación de objetos : Amazon S3 envía una notificación cuando se elimina un objeto. Admite dos opciones de eliminación. Uno es Eliminar permanentemente y el otro es Eliminar marcador creado. También podemos usar un comodín (s3:ObjectRemoved:*) si ocurre alguno de los eventos de eliminación de objetos.
- Restaurar eventos de objetos : Amazon S3 permite la restauración de objetos archivados en las clases de almacenamiento de S3 Glacier. Su solicitud será notificada al finalizar la restauración del objeto. Es de dos tipos. El primero es Restauración iniciada y el otro es Restauración completada. también podemos usar un comodín (s3:ObjectRestore:*) si ocurre alguno de los eventos de restauración de objetos.
- Eventos de pérdida de objetos de almacenamiento de redundancia reducida (RRS) : Amazon S3 notifica mediante la entrega de un mensaje cuando detecta que se ha perdido un objeto de la clase de almacenamiento RRS.
- Eventos de replicación : Amazon S3 envía dos notificaciones de eventos. Uno, cuando un objeto falla en la replicación cuando un objeto excede el umbral de 15 minutos, cuando un objeto se replica después del umbral de 15 minutos y cuando las métricas de replicación ya no rastrean un objeto. Otro cuando ese objeto se replica en la Región de destino. También podemos usar un comodín (s3:Replication:*) si ocurre alguno de los eventos de replicación de objetos.
La siguiente imagen muestra el tipo de eventos disponibles en AWS.
Destinos admitidos:
- Tema de Amazon Simple Notification Service (Amazon SNS) : Amazon SNS es un servicio de mensajería push flexible y completamente administrado. Con este servicio, puede enviar mensajes a dispositivos móviles, correos electrónicos o servicios distribuidos. SNS puede publicar un mensaje una vez y entregarlo una o más veces.
- Cola de Amazon Simple Queue Service (Amazon SQS) : Amazon SQS es un servicio de cola de mensajes escalable y completamente administrado. SQS se puede utilizar para transmitir cualquier volumen de datos sin necesidad de que otros servicios estén siempre disponibles. Se utiliza para desacoplar servicios.
- AWS Lambda : AWS Lambda es un servicio informático sin servidor que le facilita la creación de aplicaciones que responden rápidamente a la nueva información. AWS Lambda ejecuta código escrito en respuesta a eventos como cargas de imágenes, actividad en la aplicación, clics en sitios web o resultados de dispositivos conectados.
Los destinos admitidos se muestran a continuación en la imagen.
Concesión de permisos para publicar mensajes de notificación de eventos en un destino
Para que Amazon S3 publique mensajes de notificación de eventos en un destino, debe otorgar a la entidad de seguridad de Amazon S3 los permisos necesarios para llamar a la API correspondiente para publicar mensajes en un tema de SNS, una cola de SQS o una función de Lambda.
- Concesión de permisos para invocar una función de AWS Lambda : Amazon S3 invoca una función de Lambda y proporciona el mensaje de evento como argumento para publicar mensajes de evento en AWS Lambda. Al configurar lambda como el destino para recibir mensajes de notificación de eventos en la consola de Amazon S3, la consola configura los permisos necesarios en la función de Lambda para que el depósito de Amazon S3 tenga permisos para invocar la función.
- Otorgar permisos para publicar mensajes en un tema de SNS o una cola de SQS: para otorgar permisos de depósito de Amazon S3 para publicar mensajes en el tema de SNS o en la cola de SQS, adjunte una política de AWS Identity and Access Management (IAM) al tema de SNS o SQS de destino cola. La política está en formato JSON. A continuación se proporcionan ejemplos de políticas de temas de SNS y políticas de SQS:
Ejemplo de política de SNS:
{ "Version": "2012-10-17", "Id": "SNS Topic Policy", "Statement": [ { "Sid": "Geeksforgeeks SNS", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:Region:amazon-account-id:geeksforgeeksSNS", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::geeksforgeeks" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }
Ejemplo de política de SQS:
{ "Version": "2012-10-17", "Id": "SQS Policy", "Statement": [ { "Sid": "Geeksforgeeks SQS", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:Region:amazon-account-id:geeksforgeeksSQS", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:geeksforgeeks" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }
Habilitación de notificaciones de eventos:
Habilitar las notificaciones es una operación a nivel de depósito. La información de configuración de notificación se almacena en el subrecurso de notificación de eventos asociado con un depósito.
Las notificaciones de eventos se pueden configurar de dos maneras:
- Consola de Amazon S3: simplemente puede elegir el depósito para el que desea recibir mensajes para cualquier tipo de actividad. Diríjase a la pestaña de propiedades del depósito y allí puede configurar notificaciones en la sección de notificaciones de eventos.
- Mediante programación usando los SDK de AWS: Amazon S3 almacena la configuración de notificación como XML en el subrecurso de notificación asociado con un depósito.
Publicación traducida automáticamente
Artículo escrito por rohanchopra96 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA