Por lo general, realizamos múltiples operaciones en un cubo S3, por lo que en cierto punto, es posible que necesitemos activar alguna otra función, operación o servicio siempre que haya alguna operación en nuestro cubo. Esto se puede lograr utilizando notificaciones de eventos S3. Estas notificaciones de eventos se pueden configurar para cargar los archivos, actualizar las versiones de los archivos, eliminar los objetos más antiguos, las transacciones del ciclo de vida S3 y muchas otras operaciones. El cubo S3 notificará al objetivo sobre esa acción particular con notificaciones de eventos habilitadas. El tiempo de entrega de notificaciones es corto y en el rango de segundos y minutos.
En la actualidad, se pueden activar tres servicios de AWS con AWS S3.
Ahora tomemos una inmersión más profunda y veamos cómo se hace prácticamente.
Configurar notificaciones S3 para AWS SQS
Primero, crearemos un cubo S3 para el cual configuraremos las notificaciones de eventos. Para esto, simplemente inicie sesión en su cuenta de AWS y busque el servicio S3 utilizando la barra de búsqueda disponible en la parte superior de su consola de administración.
La consola S3 aparecerá frente a ti; Simplemente haga clic en Crear cubo.
En esta sección, debe proporcionar un nombre de cubo que debe ser universalmente único.
A continuación, debe especificar la región de AWS donde desea que se coloque su cubo S3. Sabemos que S3 es un servicio global, y es accesible desde cualquier región, pero aún así, debe definir en qué región desea almacenar sus datos.
A continuación, hay algunas otras configuraciones que puede administrar como versiones, cifrado y acceso público, pero simplemente puede dejarlos tan predeterminados ya que no tenemos nada que ver con ellos en la actualidad. Así que simplemente arrastre hacia abajo y haga clic en el cubo Crear en la esquina inferior derecha para finalizar el proceso de creación de cubos.
Entonces, finalmente, hemos creado un nuevo cubo S3 en nuestra cuenta de AWS.
Ahora necesitamos crear un objetivo para nuestras notificaciones de eventos, y elegiremos el servicio SQS. En la barra de búsqueda superior de la consola de AWS, busque el servicio de cola simple de Amazon.
Haga clic en Crear cola para crear un nuevo tema de SQS.
La primera opción es elegir aquí es el tipo de nuestro SQS que dejaremos al valor predeterminado, yo.mi., el estándar.
A continuación, necesitamos proporcionar el nombre del tema SQS.
Ahora para permitir que nuestro cubo S3 escriba en este servicio SQS, necesitamos proporcionar la política correcta a SQS. Para esto, seleccione avanzado en la sección Política de acceso.
La política se puede editar directamente si tiene buenas habilidades con JSON y otras cosas, pero por simplicidad, usaremos el generador de políticas proporcionadas por AWS. Simplemente haga clic en el enlace a continuación para abrir el generador de políticas.
En el generador de políticas, primero seleccione el tipo de política, que será Política de cola SQS.
A continuación, necesitamos elegir el efecto que es PERMITIR aquí. El principio será nuestro cubo S3 para el cual estamos configurando las notificaciones de eventos, por lo que debemos poner el cubo ARN aquí. El recurso es el servicio en el que necesitamos que se aplique esta política, por lo que este debe ser nuestro tema SQS ARN.
La acción que necesitamos seleccionar de la lista desplegable es enviar mensajes, ya que queremos que nuestro cubo S3 envíe el mensaje a nuestra cola SQS.
Ahora haga clic en la declaración Agregar y luego seleccione la política Crear para obtener la política en formato JSON.
Simplemente copie el contenido de la política desde allí y colóquelos en la política de SQS.
Ahora desplácese hacia abajo en la sección Crear SQS y haga clic en Crear una cola. Deje todas las demás configuraciones como es por ahora.
Finalmente, ahora vuelva a nuestro cubo S3 y seleccione la pestaña Propiedades.
Arrastre a las notificaciones de eventos y haga clic en Crear notificaciones de eventos.
Primero, proporcione el nombre de su evento.
Debe elegir el tipo de evento para el que desea habilitar las notificaciones. Hay una larga lista de la que puede elegir; Por ahora, eligamos todos los eventos de creación de objetos.
Necesitamos seleccionar el destino para nuestras notificaciones de eventos. Para esto, seleccione el servicio SQS y luego seleccione el nombre de su tema SQS.
Por fin, simplemente haga clic en Guardar cambios para completar el proceso.
Entonces, finalmente, estamos buenos para ir con las notificaciones de eventos S3. Ahora cargue un objeto en el cubo S3 y verifique si activa el SQS.
Hemos subido un objeto a nuestro cubo S3.
Si va a nuestro SQS y encuesta para obtener mensajes, recibirá notificaciones para los eventos que hemos habilitado.
Por lo tanto, hemos configurado con éxito las notificaciones de eventos S3 para un tema SQS.
Configurar notificaciones S3 para AWS SNS
Veremos otro ejemplo para las notificaciones de eventos S3 para SNS, pero esta vez en lugar de usar la consola de administración, utilizaremos la interfaz de línea de comandos AWS (CLI). Entonces, el primer paso es simplemente crear los cubos en nuestra cuenta AWS, para los cuales simplemente necesitamos usar el siguiente comando.
$: AWS S3API Create-Bucket-Bucket--región
Para ver los cubos S3 disponibles en su cuenta, puede usar este comando
$: AWS S3API List-Buckets
Ahora necesitamos crear un tema de SNS. Para eso, use el siguiente comando en CLI
$: AWS SNS CREATE-TOPIC-Nombre
Necesitamos un archivo de configuración para definir el tipo de evento y el tema SNS ARN. El archivo estará en formato JSON.
"TopicConfiguration":
"Evento": "S3: ObjectCreated:*", "Tema": "ARN: AWS: SNS: US-West-2: 123456789012: S3-Notificación-Tope"
Ahora finalmente, podemos habilitar la notificación del evento utilizando el siguiente comando.
$: AWS S3API PUT-Bucket-Notificación-Bucket--archivo de configuración de notificación: //
Por lo tanto, hemos habilitado con éxito las notificaciones de eventos S3 para nuestro tema SNS.
Conclusión:
Las notificaciones de eventos S3 nos permiten notificar a otros servicios sobre la operación realizada en nuestro cubo S3. Estas notificaciones se pueden usar para activar las funciones de Lambda, utilizando las cuales podemos invocar API REST para ejecutar otra tarea automatizada. Las notificaciones también se pueden enviar a SQS o SNS, que son muy útiles para desacoplar nuestras aplicaciones. Usando SQS y SNS, este esquema se puede vincular aún más con RDS para que podamos desarrollar nuestra base de datos para eventos particulares de S3.