SNS (Simple Notification Service o Servicio Simple de Notificaciones), es el producto de los Servicios Web de Amazon para el envío de notificaciones. Si queréis saber más sobre este servicio podéis leer esta entrada sobre AWS SNS.
Para poder hacer uso de este servicio tenemos que entender qué son los temas (topic en inglés) y las subscripciones. En SNS creamos canales de comunicación (topics), al que se conecta quien quiere recibir estas notificaciones (subscriptores). El concepto es similar a las listas de correo (que serían nuestros temas) y la gente que se apunta para recibir los correos (que serían los subscriptores).
La principal ventaja de SNS es que podemos conectar todo tipo de servicios a un canal de notificaciones. Por ejemplo, podemos hacer que con cada notificación:
- Se envíe un correo electrónico o SMS.
- Se haga una petición GET o POST a un servidor remoto.
- Se ejecute un Lambda de AWS.
Configurar una notificación en SNS
Crear un tema de SNS y realizar una subscripción (en nuestro ejemplo una cuenta de correo) es muy sencillo siguiendo estos pasos:
En primer lugar accederemos a la consola de AWS, y desde el desplegable Servicios elegiremos (o buscaremos) SNS.
Si nos aparece la portada de bienvenida de SNS, pulsaremos sobre «Get started» para acceder a la pantalla de trabajo.
En la pantalla principal, seleccionamos «Create topic» para crear un nuevo tema de envío.
Ahora, debemos indicar el nombre y una descripción breve (hasta 10 caracteres) para nuestro tema, y pulsamos el botón «Create topic»
Con nuestro tema ya creado, tenemos que añadir subscriptores que reciban los mensajes que enviemos.
Para ello, una vez dentro de nuestro asunto, pulsaremos en «Create subscription», para añadir un nuevo subscriptor.
Al pulsar, se abrirá una ventana donde debemos indicar 3 opciones:
- El ARN de AWS para nuestro tema (que ya viene indicado)
- La forma en que queremos recibir las notificaciones (elegiremos Email)
- El destino (en el caso de correo, la cuenta de correo a la queremos enviar las notificaciones
Es importante tener en cuenta que, si hemos elegido el envío a correo electrónico, debemos confirmar la dirección de correo electrónico, pulsando en el enlace del correo de confirmación que nos envían. Hasta que lo hagamos, no recibiremos notificaciones y apareceremos como «PendingConfirmation».
Nuestra cuenta de correo está pendiente de confirmación.
Recibiremos un correo similar a este, con un enlace para confirmar la subscripción.
Al pulsar en el enlace de confirmación, nos llevará a una página similar a la superior, donde nos confirmará que el proceso ha ido bien.
Actualizando, ya veremos nuestra cuenta confirmada, y podremos recibir notificaciones.
Enviar notificaciones a un tema
Una vez que ya hemos configurado nuestro tema para poder enviar notificaciones, podemos ver su funcionamiento haciendo un envío de prueba.
Para ello, en la ventana de configuración de nuestro tema, pulsamos en el botón «Publish to topic».
Al pulsar, nos pedirá que indiquemos el asunto de la notificación, el contenido (podemos indicar que es de tipo raw y escribir cualquier mensaje), y al pulsar en «Publish message» se enviará a todos los subscriptores.
Además, podemos utilizar la API de AWS para SNS para programar los envíos a SNS desde nuestro programa, instancias, lambdas, etc.