Por que meu AWS Chatbot não está recebendo mensagens do Amazon SNS?

Última atualização: 20-09-2021

Assinei um AWS Chatbot em meu tópico do Amazon Simple Notification Service (Amazon SNS). No entanto, as notificações do meu tópico do Amazon SNS não estão chegando ao AWS Chatbot. Como solucionar o problema?

Breve descrição

Se as notificações do tópico do Amazon SNS não estiverem chegando ao AWS Chatbot, um dos seguintes está configurado incorretamente:

  • (Somente para o Slack) O canal de comunicação entre o AWS Chatbot e o canal do Slack.
  • (Para Slack e Amazon Chime) O canal de comunicação entre o tópico do Amazon SNS e o AWS Chatbot.

Para solucionar o problema, faça o seguinte:

Resolução

Ative o CloudWatch Logs para o AWS Chatbot

(Somente para o Slack) Verifique se o canal de comunicação entre o AWS Chatbot e o canal do Slack está configurado corretamente

Certifique-se de que o canal do Slack não foi arquivado ou excluído

Os canais do Slack arquivados ou excluídos não podem receber mensagens. Todas as aplicações em canais do Slack arquivados ou excluídos são desativadas.

Para desarquivar um canal, consulte Arquivar ou desarquivar um canal na Central de ajuda do Slack.

Observação: não é possível cancelar a exclusão de um canal do Slack. Se o canal do Slack assinado for excluído, será necessário criar um novo canal e configurar o novo canal para receber notificações do tópico.

Certifique-se de que a aplicação AWS Chatbot esteja instalada no espaço de trabalho do Slack

Busque em seu AWS Chatbot CloudWatch Logs a seguinte mensagem de erro: account_inactive. Caso veja a mensagem de erro account_inactive, a aplicação AWS Chatbot não está instalada em seu espaço de trabalho do Slack.

Para instalar a aplicação AWS Chatbot no espaço de trabalho do Slack, siga as instruções em Configurar clientes de bate-papo para o AWS Chatbot.

(Somente para canais privados do Slack) Certifique-se de que a aplicação AWS Chatbot tenha sido adicionada ao canal do Slack

Busque em seu AWS Chatbot CloudWatch Logs a seguinte mensagem de erro: channel_not_found. Caso veja a mensagem de erro channel_not_found, a aplicação AWS Chatbot não foi adicionada ao canal privado.

Para adicionar o AWS Chatbot a um canal privado do Slack, execute o comando /invite @AWS no canal privado.

(Para Slack e Amazon Chime) Verifique se o canal de comunicação entre o tópico do Amazon SNS e o AWS Chatbot está configurado corretamente

Certifique-se de que o AWS Chatbot esteja inscrito no tópico do Amazon SNS

1.    Abra o console do AWS Chatbot.

2.    Em Configured clients (Clientes configurados), escolha Slack ou Amazon Chime com base no caso de uso.

3.    Escolha o canal do Slack na configuração do espaço de trabalho do Slack ou o webhook na lista de webhooks do Amazon Chime.

4.    Escolha Edit (Editar).

5.    No painel Details (Detalhes), em Topics (Tópicos), verifique se o tópico do Amazon SNS está listado. Se o tópico do Amazon SNS não estiver listado, será necessário inscrever o AWS Chatbot no tópico do Amazon SNS.

Certifique-se de que o endpoint do AWS Chatbot esteja listado como uma assinatura de tópico para o tópico do Amazon SNS

1.    Abra o console do Amazon SNS.

2.    No painel de navegação esquerdo, escolha Topics (Tópicos). Em seguida, escolha o nome do tópico do Amazon SNS.

3.    Em Topic subscriptions (Assinaturas de tópicos), certifique-se de que o seguinte endpoint do AWS Chatbot esteja listado: https://global.sns-api-chatbot.amazonaws.com. Se o endpoint do AWS Chatbot não estiver listado como uma assinatura de tópico, será necessário inscrever o AWS Chatbot no tópico do Amazon SNS.

Observação: para testar a configuração, use a configuração do AWS Chatbot para enviar uma notificação de teste.

Certifique-se de não estar publicando mensagens manualmente no tópico do Amazon SNS

O AWS Chatbot não oferece suporte a mensagens publicadas manualmente em um tópico do Amazon SNS. Certifique-se de enviar notificações do Amazon SNS para o AWS Chatbot somente por meio de um dos serviços compatíveis com o AWS Chatbot.

Certifique-se de que o serviço da AWS que está publicando mensagens no tópico do Amazon SNS seja compatível com o AWS Chatbot

Busque em seu AWS Chatbot CloudWatch Logs a seguinte mensagem de erro: Event Received is not supported (Não há suporte para o evento recebido). Caso veja a mensagem de erro Event Received is not supported, o serviço que publica mensagens no tópico não é compatível com o AWS Chatbot.

Para obter uma lista completa dos serviços compatíveis com o AWS Chatbot, consulte Usar o AWS Chatbot com outros serviços da AWS.

Certifique-se de que a política de acesso do tópico do Amazon SNS conceda as permissões necessárias para que outro serviço da AWS publique mensagens no tópico

1.    Abra o console do Amazon SNS.

2.    No painel de navegação esquerdo, escolha Topics (Tópicos).

3.    Escolha o tópico no qual inscreveu o AWS Chatbot. Em seguida, escolha Edit (Editar).

4.    Escolha a guia Access policy (Política de acesso). Em seguida, revise a seção Statement (Declaração) da política de acesso. Certifique-se de que a política permita que o serviço da AWS correto execute a ação de API SNS:Publish.

5.    Se sua política de acesso do Amazon SNS não permitir que o serviço correto publique eventos no tópico, atualize a política fazendo o seguinte:
Na seção Details (Detalhes) da página do tópico, escolha Edit (Editar).
Expanda a seção Access policy (Política de acesso) e adicione as permissões necessárias.

Observação: para ver exemplos de políticas de acesso do Amazon SNS, consulte Configurar tópicos do Amazon SNS para notificações no manual do usuário do console de Ferramentas do desenvolvedor. Consulte também Criar um tópico do Amazon SNS para notificações de orçamento no manual do usuário do AWS Billing and Cost Management.

Certifique-se de que a entrega de mensagens brutas não esteja ativada no tópico do Amazon SNS

O AWS Chatbot não aceita a entrega de mensagens brutas. Para verificar se a entrega de mensagens brutas está ativada no tópico do Amazon SNS, faça o seguinte:

1.    Abra o console do Amazon SNS.

2.    No painel de navegação esquerdo, escolha Topics (Tópicos). Em seguida, escolha o nome do tópico do Amazon SNS.

3.    No painel Details (Detalhes), para Raw message delivery (entrega de mensagens brutas), verifique se o status está listado como habilitado ou desabilitado.

4.    Se o status estiver listado como habilitado, desative a entrega de mensagens brutas no tópico do Amazon SNS fazendo o seguinte:
Escolha Edit (Editar).
Escolha Enable raw message delivery (Habilitar entrega de mensagens brutas) para desmarcar a opção de entrega de mensagens brutas.
Escolha Save changes (Salvar alterações).

Certifique-se de que o tópico do Amazon SNS não tenha a criptografia do lado do servidor (SSE) ativada

O AWS Chatbot não é compatível com SSE. Para verificar se a SSE não está ativada no tópico do Amazon SNS, faça o seguinte:

1.    Abra o console do Amazon SNS.

2.    No painel de navegação esquerdo, escolha Topics (Tópicos). Em seguida, escolha o nome do tópico do Amazon SNS.

3.    No painel Details (Detalhes), para Encryption (Criptografia), verifique se o status está listado como Configurado ou Desabilitado.

4.    Se o status estiver listado como Configurado, desative a SSE no tópico do Amazon SNS fazendo o seguinte:
Escolha Edit (Editar).
Expanda Encryption (Criptografia).
Escolha Disable encryption (Desabilitar criptografia).
Escolha Save Changes (Salvar alterações).

Certifique-se de não estar publicando mensagens no tópico do Amazon SNS a uma taxa superior a 10 notificações por segundo

O AWS Chatbot permite 10 eventos por segundo. Se mais de 10 eventos por segundo forem recebidos, mensagens adicionais serão limitadas.

Para verificar se seus eventos estão sendo limitados, analise a métrica EventsThrottled no Amazon CloudWatch Logs para AWS Chatbot.

(Se estiver usando o Amazon EventBridge) Certifique-se de que os eventos do EventBridge não usem transformadores de entrada

O AWS Chatbot não reconhece transformadores de entrada do EventBridge. Para certificar-se de que os eventos do Amazon EventBridge não estejam usando transformadores de entrada, faça o seguinte:

1.    Abra o console do EventBridge.

2.    No painel de navegação esquerdo, escolha Rules (Regras). Em seguida, escolha o nome da regra de evento configurada.

3.    Marque a caixa de seleção ao lado do tópico do Amazon SNS configurado como destino para a regra. Em seguida, escolha View details (Exibir detalhes).

4.    Verifique se Input Transformer (Transformador de entrada) está listado na seção Input (Entrada) na página de detalhes. Se o Input Transformer estiver listado, remova os transformadores de entrada da regra.

Observação: para obter mais informações, consulte Transformando a entrada de destino do Amazon EventBridge.

(Se estiver usando o EventBridge) Certifique-se de não estar enviando notificações de eventos dos serviços da AWS para os quais o AWS Chatbot não oferece suporte por meio do EventBridge

O AWS Chatbot não oferece suporte a notificações de eventos enviadas pelo Amazon EventBridge dos seguintes serviços da AWS:

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