¿Por qué AWS Chatbot no recibe mensajes de Amazon SNS?

Última actualización: 20-09-2021

Suscribí un chatbot de AWS Chatbot a mi tema de Amazon Simple Notification Service (Amazon SNS). Sin embargo, las notificaciones de mi tema de Amazon SNS no llegan a AWS Chatbot. ¿Cómo soluciono este problema?

Descripción breve

Si las notificaciones del tema de Amazon SNS no llegan a AWS Chatbot, una de las siguientes opciones está mal configurada:

  • (Solo para Slack) El canal de comunicación entre AWS Chatbot y el canal de Slack.
  • (Para Slack y Amazon Chime) El canal de comunicación entre el tema de Amazon SNS y AWS Chatbot.

Para solucionar el problema, haga lo siguiente.

Resolución

Activación de CloudWatch Logs para AWS Chatbot

(Solo para Slack) Verifique que el canal de comunicación entre AWS Chatbot y el canal de Slack esté configurado correctamente

Asegúrese de que el canal de Slack no se haya archivado ni eliminado

Los canales de Slack archivados o eliminados no pueden recibir mensajes. Todas las aplicaciones de los canales de Slack archivados o eliminados están desactivadas.

Para desarchivar un canal, consulte Archivar o desarchivar un canal en el centro de ayuda de Slack.

Nota: no puede recuperar un canal de Slack. Si se elimina el canal de Slack suscrito, debe crear un nuevo canal de Slack y configurar el nuevo canal para recibir notificaciones del tema.

Asegúrese de que la aplicación AWS Chatbot esté instalada en su espacio de trabajo de Slack

Revise los registros de CloudWatch Logs de AWS Chatbot para ver el siguiente mensaje de error: account_inactive. Si ve un mensaje de error account_inactive, significa que la aplicación de AWS Chatbot no está instalada en su espacio de trabajo de Slack.

Para instalar la aplicación de AWS Chatbot en su espacio de trabajo de Slack, siga las instrucciones de Configurar clientes de chat para AWS Chatbot.

(Solo para canales privados de Slack) Asegúrese de que la aplicación de AWS Chatbot se agregó al canal de Slack

Revise los registros de CloudWatch Logs de AWS Chatbot para ver el siguiente mensaje de error: channel_not_found. Si aparece un mensaje de error channel_not_found, significa que la aplicación de AWS Chatbot no se ha agregado al canal privado.

Para agregar AWS Chatbot a un canal privado de Slack, ejecute el comando /invite@AWS en el canal privado.

(Para Slack y Amazon Chime) Verifique que el canal de comunicación entre el tema de Amazon SNS y AWS Chatbot esté configurado correctamente

Asegúrese de que AWS Chatbot esté suscrito a su tema de Amazon SNS

1.    Abra la consola de AWS Chatbot.

2.    En Clientes configurados, elija Slack o Amazon Chime según su caso de uso.

3.    Elija su canal de Slack en la configuración del espacio de trabajo de Slack o su webhook en la lista de webhooks de Amazon Chime.

4.    Elija Editar.

5.    En el panel Detalles, en Temas, verifique que el tema de Amazon SNS aparezca en la lista. Si su tema de Amazon SNS no aparece en la lista, debe suscribir AWS Chatbot al tema de Amazon SNS.

Asegúrese de que el punto de enlace de AWS Chatbot aparezca como suscripción a temas para su tema de Amazon SNS.

1.    Abra la consola de Amazon SNS.

2.    En el panel de navegación izquierdo, elija Temas. A continuación, elija el nombre del tema de Amazon SNS.

3.    En Suscripciones a temas, asegúrese de que aparezca el siguiente punto de enlace de AWS Chatbot: https://global.sns-api-chatbot.amazonaws.com. Si el punto de enlace de AWS Chatbot no aparece como suscripción a temas, debe suscribir AWS Chatbot al tema de Amazon SNS.

Nota: para probar la configuración, utilice la configuración de AWS Chatbot para enviar una notificación de prueba.

Asegúrese de no publicar mensajes manualmente en su tema de Amazon SNS

AWS Chatbot no admite mensajes que se publican manualmente en un tema de Amazon SNS. Asegúrese de enviar notificaciones de Amazon SNS a AWS Chatbot solo a través de uno de los servicios compatibles con AWS Chatbot.

Asegúrese de que el servicio de AWS que publica mensajes en su tema de Amazon SNS sea compatible con AWS Chatbot

Revise los registros de CloudWatch Logs de AWS Chatbot para ver si aparece el siguiente mensaje de error: No se admite el evento recibido. Si ve un mensaje de error No se admite el evento recibido, entonces AWS Chatbot no admite los mensajes de publicación del servicio en su tema.

Para obtener una lista completa de los servicios compatibles con AWS Chatbot, consulte Uso de AWS Chatbot con otros servicios de AWS.

Asegúrese de que la política de acceso de su tema de Amazon SNS conceda los permisos necesarios para que otro servicio de AWS publique mensajes en el tema

1.    Abra la consola de Amazon SNS.

2.    En el panel de navegación izquierdo, elija Temas.

3.    Elija el tema al que suscribió AWS Chatbot. Luego, elija Editar.

4.    Elija la pestaña Política de acceso. A continuación, revise la sección Declaración de la política de acceso. Asegúrese de que la política permite que el servicio de AWS correcto ejecute la acción de API SNS:Publish.

5.    Si la política de acceso de Amazon SNS no permite que el servicio correcto publique eventos en su tema, actualice la política de la siguiente manera:
En la sección Detalles de la página de temas, elija Editar.
Expanda la sección Política de acceso y, a continuación, agregue los permisos necesarios.

Nota: por ejemplo, políticas de acceso de Amazon SNS, consulte Configurar temas de Amazon SNS para notificaciones en la guía del usuario de la consola de herramientas para desarrolladores. También, Crear un tema de Amazon SNS para las notificaciones de presupuestos en la guía del usuario de Administración de facturación y costes de AWS.

Asegúrese de que la entrega de mensajes sin procesar no esté activada en el tema de Amazon SNS

AWS Chatbot no acepta la entrega de mensajes sin procesar. Para verificar que la entrega de mensajes sin procesar esté activada en el tema de Amazon SNS, haga lo siguiente:

1.    Abra la consola de Amazon SNS.

2.    En el panel de navegación izquierdo, elija Temas. A continuación, elija el nombre del tema de Amazon SNS.

3.    En el panel Detalles, para Entrega de mensajes sin formato, compruebe si el estado aparece como habilitado o desactivado.

4.    Si el estado aparece como habilitado, desactive la entrega de mensajes sin procesar en el tema de Amazon SNS de la siguiente manera:
Elija Editar.
Seleccione Habilitar entrega de mensajes sin procesar para anular la selección de la opción de entrega de mensajes sin procesar.
Elija Guardar cambios.

Asegúrese de que el tema de Amazon SNS no tenga activado el cifrado del lado del servidor (SSE)

AWS Chatbot no admite SSE. Para verificar que el SSE no esté activado en el tema de Amazon SNS, haga lo siguiente:

1.    Abra la consola de Amazon SNS.

2.    En el panel de navegación izquierdo, elija Temas. A continuación, elija el nombre del tema de Amazon SNS.

3.    En el panel Detalles, en Cifrado, verifique si el estado aparece como Configurado o Desactivado.

4.    Si el estado aparece como Configurado, desactive el SSE en el tema de Amazon SNS de la siguiente manera:
Elija Editar.
Expanda Cifrado.
Elija Desactivar cifrado.
Elija Guardar cambios.

Asegúrese de no publicar mensajes en su tema de Amazon SNS a un ritmo superior a 10 notificaciones por segundo

AWS Chatbot permite 10 eventos por segundo. Si se reciben más de 10 eventos por segundo, se limitan los mensajes adicionales.

Para verificar si los eventos se están limitando, revise la métrica EventsThrottled en Amazon CloudWatch Logs para AWS Chatbot.

(Si utiliza Amazon EventBridge) Asegúrese de que los eventos de EventBridge no utilicen transformadores de entrada

AWS Chatbot no reconoce los transformadores de entrada de EventBridge. Para comprobar si los eventos de Amazon EventBridge no utilizan transformadores de entrada, haga lo siguiente:

1.    Abra la consola de EventBridge.

2.    En el panel de navegación izquierdo, elija Reglas. A continuación, elija el nombre de la regla de eventos configurada.

3.    Seleccione la casilla de verificación junto al tema de Amazon SNS que configuró como destino de la regla. A continuación, elija Ver detalles.

4.    Compruebe si hay Transformador de entrada en la sección Entrada de la página de detalles o no. Si aparece Transformador de entrada, elimine los transformadores de entrada de la regla.

Nota: para obtener más información, consulte Transformación de la entrada de destino de Amazon EventBridge.

(Si utiliza EventBridge) Asegúrese de no enviar notificaciones de eventos desde los servicios de AWS que AWS Chatbot no admite a través de EventBridge

AWS Chatbot no admite las notificaciones de eventos enviadas a través de Amazon EventBridge desde los siguientes servicios de AWS:

  • Amazon CloudWatch
  • AWS CodeBuild
  • AWS CodeCommit
  • AWS CodeDeploy
  • AWS CodePipeline