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

Data da última atualização: 31/5/2022

Inscrevi 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.

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 excluir 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 inscrito 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 não estiver listado, você deverá inscrever seu tópico do Amazon SNS no AWS Chatbot.

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 Using AWS Chatbot with other AWS services (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, selecione 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 Guia do usuário do console das Ferramentas do desenvolvedor. Consulte também Criar um tópico do Amazon SNS para notificações de orçamento no Guia do usuário do Gerenciamento de Faturamento e Custos da AWS.

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 enabled (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).

(Se você estiver usando tópicos do Amazon SNS com a criptografia do lado do servidor ativada) Certifique-se de incluir as permissões de política de chaves do AWS Key Management Service (AWS KMS) necessárias

Sua política de chaves do AWS KMS deve permitir que o serviço que está enviando mensagens publique em seus tópicos criptografados do SNS.

Certifique-se de que sua política de chaves do AWS KMS inclua a seguinte seção:
Importante: substitua events.amazonaws.com pela entidade principal de serviço da AWS referente ao serviço que está publicando em seus tópicos criptografados do SNS

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

Observação: para testar a configuração usando o Console de Gerenciamento da AWS, sua função do AWS Identity and Access Management (IAM) exige permissão para usar a chave do AWS KMS.

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 (Visualizar 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 Transforming Amazon EventBridge target input (Transformar 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

Troubleshooting AWS Chatbot (Solução de problemas do AWS Chatbot)

How do I use webhooks to publish Amazon SNS messages to Amazon Chime, Slack, or Microsoft Teams? (Como uso webhooks para publicar mensagens do Amazon SNS no Amazon Chime, Slack ou Microsoft Teams?)

Test notifications from AWS services to Amazon Chime or Slack using CloudWatch (Testar notificações dos serviços da AWS para o Amazon Chime ou Slack usando o CloudWatch)

Este artigo ajudou?


Você necessita de suporte técnico ou relacionado à cobrança?