Desarrollo1 de enero de 2026

Cómo enviar alarmas de AWS CloudWatch a Slack

Los sistemas de alarmas y monitorización son una pieza clave de cualquier producto o aplicación madura. Si te preocupan tus clientes, es mejor enterarte cuando algo falla que estar a oscuras. Si tu infraestructura está en AWS, la única forma de obtener todas las métricas de los servicios que usas es CloudWatch. Pero AWS CloudWatch no solo te da acceso a las métricas: también te permite crear alarmas para casos concretos. Ahora bien, si ya has trabajado con AWS, seguro que has notado que su interfaz y algunas funciones están muy lejos de ser "user friendly", así que enviar notificaciones de alarmas a Slack no es precisamente trivial.

En este artículo te cuento los trucos que necesitas conocer para configurar en cinco minutos las alarmas que necesitas, paso a paso y con capturas de cada pantalla.

Estos son los pasos que vamos a seguir:

  • Crear una Access Key y un Secret de AWS
  • Crear un rol
  • Desplegar la función Lambda
  • Crear un topic de SNS y una suscripción
  • Crear una alarma de CloudWatch

1. Crear una Access Key y un Secret de AWS

Si ya tienes tu Access Key y tu Secret de AWS, puedes saltarte este paso. Si no, entra en este enlace. Elige tu usuario, ve a la pestaña Security Credentials y haz clic en Create Access Key.

Copia la Access Key y el Secret de AWS; los usaremos al configurar el despliegue de la función Lambda.

2. Crear un rol

La función Lambda usará este rol, que necesita permisos para hacer ciertas cosas. Entra en este enlace y haz clic en Create Role.

Elige Lambda en la lista.

Busca AWSLambdaBasicExecutionRole y selecciónalo.

Por último, escribe un nombre para el rol, por ejemplo "cloudwatch-to-slack-role", haz clic en el rol recién creado en la lista y copia su ARN. Lo usaremos en el paso 3, al desplegar la función Lambda.

3. Desplegar la función Lambda

Para desplegar la función de AWS Lambda tienes que clonar el repositorio y tener Node.js instalado en tu máquina. El repositorio incluye un proceso de configuración que simplifica bastante este paso.


git clone git@github.com:assertible/lambda-cloudwatch-slack.git
cd lambda-cloudwatch-slack
cp .env.example .env

Abre el archivo .env y rellena las variables de entorno.

UNENCRYPTED_HOOK_URL En esta variable va el Incoming Webhook de Slack. Crea uno nuevo para CloudWatch en esta página para tu organización.

Sigue la buena práctica de usar un webhook para cada servicio concreto. Cuando crees el webhook, elige el canal donde se publicarán las notificaciones, define un nombre de usuario (el título de los mensajes) y, por supuesto, añade una imagen bonita. Puedes descargar el logo de CloudWatch aquí.

AWS_FUNCTION_NAME El nombre de tu función, que aparecerá en la página de AWS Lambda. Vamos a llamarla "cloudwatch-to-slack".

AWS_REGION=eu-west-1 Elige la región de la función Lambda.

AWS_ROLE=”arn:aws:iam::123456789123:role/lambda_exec_role” Pega aquí el ARN del segundo paso.

AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY Rellénalas con la Access Key y el Secret de AWS del primer paso.

Ya lo tenemos todo listo para desplegar. Solo tienes que ejecutar este comando en la terminal, desde la carpeta del repositorio que hemos clonado:


npm install
npm run deploy

Si todo ha ido bien, verás la función recién instalada en la página de Lambda de AWS.

4. Crear un topic de SNS y una suscripción

Ve en AWS a Simple Notification Service. Irónicamente, este servicio es de todo menos simple, sobre todo por la terminología que usa y los pasos que hay que dar.

Ve a Topics y haz clic en Create New Topic. Yo elegí el nombre "cloudwatch-alarms" para las notificaciones que se enviarán.

Abre el topic que acabas de crear y crea una suscripción.

Selecciona AWS Lambda como protocolo y elige el endpoint con el nombre de tu función.

Y ya está: ahora podemos crear una alarma.

5. Crear una alarma de CloudWatch

Entra en CloudWatch desde tu cuenta de AWS y haz clic en Create Alarm.

Elige la métrica que quieres monitorizar, define la configuración de la alarma y selecciona el nombre de tu topic de SNS en la sección Send Notification To.

Te recomiendo definir a propósito unas condiciones que disparen la alarma de inmediato para probar la función. Si todo está bien configurado, verás el mensaje en tu canal de Slack.

Espero que esta guía te ayude a ahorrar tiempo y a configurar las alarmas de tus proyectos actuales o futuros.

Notas adicionales: AWS Lambda incluye por defecto blueprints que te permiten hacer distintas cosas con una configuración sencilla, y entre ellos puedes encontrar incluso una función de CloudWatch a Slack. Por desgracia, envía al canal datos muy pobres y sin estructura.

Cuéntanos tu caso

Escríbenos