Con este tutorial, implementará un caso de mensajería de distribución ramificada mediante el uso de Amazon Simple Notification Service (SNS) y Amazon Simple Queue Service (SQS). En este caso, los mensajes se envían mediante notificaciones push a varios suscriptores, lo que evita tener que verificar u obtener periódicamente actualizaciones y permite el procesamiento asíncrono paralelo del mensaje por parte de los suscriptores.

Por poner un ejemplo, supongamos que está desarrollando una aplicación nativa en la nube que envía un mensaje de Amazon SNS a un tema cada vez que se hace un pedido en una tienda online. Las colas de Amazon SQS que están suscritas a este tema reciben notificaciones idénticas para el nuevo pedido.

Los servicios de AWS que utiliza en este tutorial están dentro de la capa gratuita de AWS.

Enviar notificaciones de eventos de distribución en AWS requiere una cuenta

Cree una cuenta gratuita

La capa gratuita de AWS incluye 1 000 000 de publicaciones para Amazon Simple Notification Service y 1 000 000 solicitudes de Amazon Simple Queue Service.

Consulte los detalles de la capa gratuita de AWS »

 

Cuando haga clic aquí, se abrirá la consola de administración de AWS en una ventana del navegador nueva, para que pueda seguir teniendo abierta esta guía paso a paso. Cuando la pantalla se cargue, escriba su nombre de usuario y contraseña para comenzar. A continuación, escriba una notificación en la barra de búsqueda y seleccione Servicio simple de notificación para abrir la consola del servicio.

tmt_send-fanout-event-notifications_1a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_1a

a. Si se muestra la página de inicio de la consola SNS, haga clic en Get Started Now (Empezar ahora).

tmt_send-fanout-event-notifications_1b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_1b

En este paso, creará un tema de Amazon SNS. Un tema es un canal de comunicación para enviar mensajes y suscribirse a notificaciones. En este ejemplo, una aplicación de comercio electrónico enviará un mensaje a un tema de Amazon SNS cuando se haga un nuevo pedido en la tienda online. 


a. En Acciones comunes, haga clic en Crear tema.

tmt_send-fanout-event-notifications_2a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_2a

b. Se mostrará el cuadro de diálogo Crear tema. En Nombre del tema, escriba New-Orders y, a continuación, haga clic en Crear tema.

tmt_send-fanout-event-notifications_2b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_2b

c. Se muestra la página Detalles del tema.

tmt_send-fanout-event-notifications_2c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_2c

Ahora que ha creado el tema con Amazon SNS, podrá crear colas de Amazon SQS que se suscriben al tema.

Cuando suscribe varias colas a un tema, cada cola recibe notificaciones idénticas cada vez que un mensaje se envía al tema. Los servicios adjuntos a las colas podrán procesar los pedidos de forma asíncrona y en paralelo.

Por ejemplo, una instancia de servidor Amazon EC2 adjunta a una de las colas podría manejar el procesamiento o la cumplimentación de la orden, mientras que el resto de instancias de servidor podría adjuntarse a una data warehouse para el análisis de todos los pedidos recibidos.

Para simplificar, no adjuntaremos realmente instancias EC2 para las colas en este tutorial.


a. Haga clic aquí para abrir la consola de Amazon SQS en una nueva ventana del navegador. Si se muestra la página de inicio de SQS, haga clic en Empezar ahora. De lo contrario, vaya al siguiente paso.

 

tmt_send-fanout-event-notifications_3a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_3a

b. Nuestra primera cola almacenará los pedidos para un servicio de inventario ficticio que realiza un seguimiento de los productos, los añade y elimina cuando sea necesario del inventario con cada pedido.  

En la página Crear nueva cola, ingrese Orders-for-Inventory en el campo Nombre de la cola. Deje Cola estándar seleccionada y haga clic en Crear cola rápido.

tmt_send-fanout-event-notifications_3b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_3b

c. La nueva cola se crea y se selecciona en la lista de colas. A continuación, creará una segunda cola para manejar el análisis del pedido.

Haga clic en Crear nueva cola para crear otra cola para almacenar los pedidos para el servicio de análisis.

tmt_send-fanout-event-notifications_3c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_3c

d. Introduzca Orders-for-Analytics en el campo Nombre de cola y, a continuación, haga clic en Crear cola rápido.

tmt_send-fanout-event-notifications_3d

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_3d

e. La nueva cola aparecerá ahora en la lista.

tmt_send-fanout-event-notifications_3e

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_3e

Ahora que ha creado su dos colas de Amazon SQS, debe suscribirlas al tema de Amazon SNS que emite notificaciones de nuevos pedidos.


a. En la lista de colas, seleccione las colas Pedidos-para-inventario y Pedidos-para-análisis. En Acciones de cola, seleccione Suscribir cola al tema de SNS.

tmt_send-fanout-event-notifications_4a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_4a

b. Se muestra el cuadro de diálogo Suscribirse a un tema. Desde el menú desplegable Elegir un tema seleccione el tema Nuevos-pedidos de Amazon SNS.

El tema de SNS aparece en la lista, ya que lo ha creado desde la misma cuenta que utilizó para crear las colas de Amazon SQS. Si el tema de SNS fue realizado por otra cuenta, puede suscribirse a él mediante el tema ARN. Para obtener más detalles, consulte la documentación de Amazon SNS.

No modifique la región del tema y, a continuación, haga clic en Suscribirse.

tmt_send-fanout-event-notifications_4b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_4b

c. Se muestra el cuadro de diálogo Resultado de la suscripción al tema. Haga clic en OK.

tmt_send-fanout-event-notifications_4c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_4c

Sus colas están suscritas al tema. En este paso, simulará un nuevo pedido a través de la aplicación de eCommerce ficticia que enviará un mensaje al tema con los detalles del pedido.


a. En la consola de Amazon SNS, haga clic en Temas.

 

tmt_send-fanout-event-notifications_5a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_5a

b. Seleccione el tema Nuevos-pedidos y, a continuación, haga clic en el botón Publicar en el tema.


tmt_send-fanout-event-notifications_5b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_5b

c. Se muestra la página Publicar un mensaje.

En el Asunto, escriba Order 123-4567890-1234567.

En Formato del mensaje, seleccione sin procesar.

En el campo de Mensajes, introduzca el texto siguiente para representar un pedido de muestra:
1 x componente 29,99 USD
2 x cables del componente 4,99 USD

Haga clic en Publicar mensaje. Aparecerá un cuadro de diálogo de confirmación.

tmt_send-fanout-event-notifications_5c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_5c

Una vez que se haya publicado un nuevo mensaje, Amazon SNS entregará dicho mensaje a cada punto de enlace que esté suscrito en el tema. En un escenario de distribución como este, las colas de Amazon SQS son los puntos de enlace.

En este paso, confirmará que las colas hayan recibido la notificación de nuevo pedido al visualizar el mensaje que el tema envía a las colas.


a. En la consola de Amazon SQS, marque la casilla para la cola de Pedidos-para-inventario de la lista de cola. En el menú desplegable Acción de cola, seleccione Ver/Eliminar mensajes.

 

tmt_send-fanout-event-notifications_6a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6a

b. Haga clic en Iniciar sondeo de mensajes.


tmt_send-fanout-event-notifications_6b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6b

c. Se muestra el cuadro de diálogo Ver/Eliminar mensajes en Pedidos-para-inventario.

tmt_send-fanout-event-notifications_6c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6c

d. En la columna Cuerpo, haz clic en Más detalles. La casilla Detalles de mensajes contiene un documento JSON que contiene el asunto y el mensaje que ha publicado en el tema.

Ha confirmado que la cola Pedidos-para-inventario recibió la notificación del nuevo orden del tema Nuevos-pedidos.

Haga clic en Cerrar.

 

tmt_send-fanout-event-notifications_6d

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6d

e. Supongamos que nuestros servicios de procesamiento de inventario ficticios han finalizado de procesar este mensaje y que ahora podemos eliminar de manera segura el mensaje de la cola. 

Haga clic en Eliminar 1 mensaje. Para confirmar, haga clic en Sí, eliminar mensajes seleccionados. A continuación, haga clic en Cerrar.

 

tmt_send-fanout-event-notifications_6e

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6e

f. Repita los pasos del 6a al 6e para confirmar que la cola Pedidos-para-análisis también recibió la notificación del nuevo orden.

tmt_send-fanout-event-notifications_6f

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_6f

En este paso, eliminará los recursos que haya creado para este tutorial, que incluyen las suscripciones a temas, los temas y las colas. Se recomienda eliminar los recursos que ya no utilice para que no le cobren cargos.


a. Abra la consola de Amazon SNS y, a continuación, haga clic en Temasen el panel de navegación izquierdo.

Seleccione el tema Nuevos-pedidos.

Haga clic en el menú desplegable Acciones y seleccione Eliminar temas.


tmt_send-fanout-event-notifications_7a

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_7a

b. Aparecerá el cuadro de diálogo Borrar de confirmación. Haga clic en Eliminar. El tema, y sus suscripciones, se eliminan. A partir de ahora, puede cerrar la ventana del navegador SNS (pero no cerrar sesión, ya que deberá eliminar las colas en la consola de SQS).

 

tmt_send-fanout-event-notifications_7b

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_7b

c. En la consola de Amazon SQS, seleccione las colas Pedidos-para-inventario y Pedidos-para-análisis. En Acciones de cola, seleccione Eliminar colas.


tmt_send-fanout-event-notifications_7c

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_7c

d. Se muestra el cuadro de diálogo Eliminar colas. Haga clic en Sí, eliminar 2 colas. Las colas se eliminarán.

A partir de ahora, puede salir de la consola de Amazon SQS.

tmt_send-fanout-event-notifications_7d

(Haga clic para ampliar).

tmt_send-fanout-event-notifications_7d

Ha implementado una situación de distribución mediante Amazon SNS y Amazon SQS. Ahora está listo para utilizar Amazon SNS y Amazon SQS de manera conjunta para ofrecer mensajes a las aplicaciones que necesitan notificación inmediata de un evento, o para regular los mensajes que se encuentran en las colas de Amazon SQS para que otras aplicaciones los procesen posteriormente.

 


Ahora que ha aprendido a implementar las notificaciones de distribución de mensajes a través de Amazon Simple Notification Service y Amazon Simple Queue Service, elija una de las siguientes opciones para profundizar en la mensajería en la nube de AWS.

Más información

Obtenga una visión general de las capacidades, componentes y casos de uso para los temas de mensajes en Amazon Web Services (AWS). Visite la página web de Amazon SNS »

Descubra más

Explore cómo habilitar las aplicaciones, los usuarios finales y los dispositivos para enviar y recibir al instante notificaciones desde la nube. Lea la documentación »

Véalo en acción

Sepa de qué manera clientes como Capital One utilizan Amazon SQS y Amazon SNS para desacoplar y escalar aplicaciones. Vea el seminario web »

No