Estoy integrando SNS y Slack. Creé una aplicación de Slack con el webhook entrante habilitado. Tengo la URL del webhook. Creé una suscripción para un tema de SNS con el protocolo HTTPS y configuré el punto final como webhookURL. Ahora la suscripción está pendiente de confirmación. No recibí ningún mensaje de confirmación, no en el canal destinado.
¿Cómo confirmo la suscripción?
No necesita crear una función lambda o crear una suscripción HTTPS con Slack.
En su canal de holgura, agregue la aplicación de "integración de correo electrónico". Una vez hecho esto, Slack le proporcionará una dirección de correo electrónico con el dominio slack.com.
Los correos electrónicos enviados a esta dirección se importarán a tu canal de Slack.
Luego, en SNS, cree una suscripción de correo electrónico y proporcione el correo electrónico de holgura anterior.
La razón por la que no lo ves en Slack es porque el formato JSON predeterminado para los mensajes SNS no se ajusta al formato requerido por Slack:
Tiene dos opciones para enviar datos a la URL del webhook anterior:
- Envíe una cadena JSON como parámetro de carga útil en una solicitud POST
- Enviar una cadena JSON como cuerpo de una solicitud POST
Para un mensaje simple, su carga JSON podría contener una propiedad de texto como mínimo. Este es el texto que se publicará en el canal.
Como sugirió otro usuario, puede usar una función AWS Lambda para facilitar esto. Ya hay soluciones públicas y gratuitas disponibles, como esta (que no soy autora y no he usado... solo se incluye como punto de referencia).
Ha creado una función lambda que recibe comentarios de SNS y la PUBLICÓ en la URL de su webhook.
Cuando crea una suscripción a su tema lambda, elige AWS Lambda como protocolo y selecciona el lambda que acaba de crear.
Más información al respecto aquí: https://medium.com/cohealo-engineering/how-set-up-a-slack-channel-to-be-an-aws-sns-subscriber-63b4d57ad3ea