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

Última actualización: 21/03/2022

Suscribí un 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 eliminar un canal en el centro de ayuda de Slack.

Nota: No puede recuperar un canal de Slack eliminado. 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 Edit (Editar).

5.    En el panel Detalles, en Temas, verifique que el tema de Amazon SNS aparezca en la lista. Si el tema de Amazon SNS no aparece en la lista, debe suscribir el 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 conexión de AWS Chatbot no aparece como una suscripción a tema, debe suscribir el 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 las notificaciones de Amazon SNS a su 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: Event Received is not supported (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 Using AWS Chatbot with other AWS services (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 Access policy (Política de acceso) y, a continuación, agregue los permisos necesarios.

Nota: Para consultar ejemplos de políticas de acceso de Amazon SNS, lea Configure Amazon SNS topics for notifications (Configurar temas de Amazon SNS para generar notificaciones) en la Guía del usuario de la consola de herramientas para desarrolladores. También consulte Creación de un tema de Amazon SNS para las notificaciones del presupuesto en la Guía del usuario de Administración de facturación y costos 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 enabled (habilitado), desactive la entrega de mensajes sin procesar en el tema de Amazon SNS de la siguiente manera:
Elija Edit (Editar).
Seleccione Habilitar entrega de mensajes sin procesar para anular la selección de la opción de entrega de mensajes sin procesar.
Elija Save changes (Guardar cambios).

(Si utiliza temas de Amazon SNS con el cifrado del lado del servidor activo) Asegúrese de incluir los permisos de la política de claves de AWS Key Management Service (AWS KMS) obligatorios

La política de claves de AWS KMS debe permitir que el servicio que envía mensajes haga publicaciones en sus temas de SNS cifrados.

Asegúrese de que su política de claves de AWS KMS incluya la siguiente sección:
Importante: Reemplace events.amazonaws.com por la entidad principal del servicio de AWS que hace publicaciones en sus temas de SNS cifrados.

{
  "Sid": "Allow CWE to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
    },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*"
}

Nota: Para probar la configuración con la consola de administración de AWS, su rol de AWS Identity and Access Management (IAM) necesita permiso para usar la clave de AWS KMS.

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 se están limitando los eventos, revise la métrica EventsThrottled en sus registros de 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 verificar 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 ubicada junto al tema de Amazon SNS que configuró como destino de la regla. A continuación, elija View details (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

Troubleshooting AWS Chatbot (Solución de problemas de AWS Chatbot)

How do I use webhooks to publish Amazon SNS messages to Amazon Chime, Slack, or Microsoft Teams? (¿Cómo uso webhooks para publicar mensajes de Amazon SNS en Amazon Chime, Slack o Microsoft Teams?)

Test notifications from AWS services to Amazon Chime or Slack using CloudWatch (Prueba de notificaciones de los servicios de AWS para Amazon Chime o Slack mediante CloudWatch)

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?