Pourquoi mon bot AWS Chatbot ne reçoit-il pas les messages d'Amazon SNS ?

Dernière mise à jour : 31/05/2022

J'ai abonné un bot AWS Chatbot à ma rubrique Amazon Simple Notification Service (Amazon SNS). Toutefois, les notifications de ma rubrique Amazon SNS ne parviennent pas au bot AWS Chatbot. Comment résoudre ce problème ?

Brève description

Si les notifications de votre rubrique Amazon SNS n'arrivent pas à votre bot AWS Chatbot, l'un des éléments suivants est mal configuré :

  • (Pour Slack uniquement) Le canal de communication entre le bot AWS Chatbot et le canal Slack.
  • (Pour Slack et Amazon Chime) Le canal de communication entre la rubrique Amazon SNS et le bot AWS Chatbot.

Solution

Activer CloudWatch Logs pour votre bot AWS Chatbot

Suivez les instructions de la section Accès aux journaux Amazon CloudWatch Logs pour AWS Chatbot.

(Pour Slack uniquement) Vérifiez que le canal de communication entre le bot AWS Chatbot et le canal Slack est correctement configuré.

Assurez-vous que le canal Slack n'est ni archivé ni supprimé

Les canaux Slack archivés ou supprimés ne peuvent pas recevoir de messages. Toutes les applications des canaux Slack archivés ou supprimés sont désactivées.

Pour désarchiver un canal, consultez Archiver ou désarchiver un canal dans le centre d'aide de Slack.

Remarque : vous ne pouvez pas annuler la suppression d'un canal Slack. Si le canal Slack abonné est supprimée, vous devez créer un autre canal Slack et le configurer pour recevoir les notifications de votre rubrique.

Assurez-vous que l'application AWS Chatbot est installée sur votre espace de travail Slack

Consultez vos journaux AWS Chatbot CloudWatch Logs et recherchez le message d'erreur suivant : account_inactive. Si un message d'erreur account_inactive est présent, votre application AWS Chatbot n'est pas installée sur votre espace de travail Slack.

Pour installer l'application AWS Chatbot sur votre espace de travail Slack, suivez les instructions de la section Configurer les clients de chat pour AWS Chatbot.

(Pour les canaux Slack privés uniquement) Assurez-vous que l'application AWS Chatbot est ajoutée au canal Slack

Consultez vos journaux AWS Chatbot CloudWatch Logs et recherchez le message d'erreur suivant : channel_not_found. Si un message d'erreur channel_not_found est présent, votre application AWS Chatbot n'a pas été ajoutée au canal privé.

Pour ajouter le bot AWS Chatbot à un canal Slack privé, exécutez la commande /invite @AWS dans le canal privé.

(Pour Slack et Amazon Chime) Vérifiez que le canal de communication entre la rubrique Amazon SNS et le bot AWS Chatbot est correctement configuré

Assurez-vous que votre bot AWS Chatbot est abonné à votre rubrique Amazon SNS

1.    Ouvrez la console AWS Chatbot.

2.    Sous Configured clients (Clients configurés), choisissez Slack ou Amazon Chime en fonction de votre cas d'utilisation.

3.    Choisissez votre canal Slack dans la Slack workspace configuration (Configuration de l'espace de travail Slack) ou votre webhook dans la liste des webhooks Amazon Chime.

4.    Choisissez Edit (Modifier).

5.    Vérifiez que votre rubrique Amazon SNS est répertoriée dans le panneau Details (Détails), sous Topics (Rubriques). Si la rubrique n'est pas répertoriée, vous devez abonner votre rubrique Amazon SNS à votre bot AWS Chatbot.

Assurez-vous que le point de terminaison AWS Chatbot est répertorié en tant qu'abonnement à votre rubrique Amazon SNS

1.    Ouvrez la console Amazon SNS.

2.    Dans le panneau de navigation de gauche, sélectionnez Topics (Rubriques). Choisissez ensuite le nom de votre rubrique Amazon SNS.

3.    Assurez-vous que le point de terminaison AWS Chatbot suivant est répertorié sous Topic subscriptions (Abonnements aux rubriques) : https://global.sns-api.chatbot.amazonaws.com. Si le point de terminaison AWS Chatbot ne figure pas en tant qu'abonnement à une rubrique, vous devez abonner votre rubrique Amazon SNS à votre bot AWS Chatbot.

Remarque : pour tester la configuration, utilisez votre configuration AWS Chatbot pour envoyer une notification de test.

Veillez à ne pas publier manuellement de messages dans votre rubrique Amazon SNS

AWS Chatbot ne prend pas en charge les messages publiés manuellement dans une rubrique Amazon SNS. Veillez à n'envoyer les notifications Amazon SNS à votre bot AWS Chatbot que via l'un des services pris en charge par AWS Chatbot.

Assurez-vous que le service AWS qui publie des messages dans votre rubrique Amazon SNS est pris en charge par AWS Chatbot.

Consultez vos AWS Chatbot CloudWatch Logs et recherchez le message d'erreur suivant : Event Received is not supported (L'événement reçu n'est pas pris en charge). Si un message d'erreur Event Received is not supported (L’événement reçu n’est pas pris en charge) est présent, le service qui publie des messages dans votre rubrique n'est pas pris en charge par AWS Chatbot.

Pour obtenir la liste complète des services pris en charge par AWS Chatbot, consultez Utilisation d'AWS Chatbot avec d'autres services AWS.

Assurez-vous que la stratégie d'accès de votre rubrique Amazon SNS accorde les autorisations requises pour qu'un autre service AWS publie des messages dans la rubrique.

1.    Ouvrez la console Amazon SNS.

2.    Dans le panneau de navigation de gauche, sélectionnez Topics (Rubriques).

3.    Choisissez la rubrique à laquelle vous avez abonné votre bot AWS Chatbot. Ensuite, choisissez Edit (Modifier).

4.    Choisissez l'onglet Access policy (Stratégie d'accès). Passez ensuite en revue la section Statement (Déclaration) de la stratégie d'accès. Assurez-vous que la stratégie autorise le service AWS approprié à exécuter l'action d’API SNS:Publish.

5.    Si votre stratégie d'accès Amazon SNS n'autorise pas le service approprié à publier des événements dans votre rubrique, mettez à jour la stratégie en procédant comme suit :
Dans la section Details (Détails) de la page de votre rubrique, choisissezEdit (Modifier).
Développez la section Access policy (Stratégie d'accès), puis ajoutez les autorisations requises.

Remarque : pour des exemples de stratégies d'accès Amazon SNS, consultez Configurer les rubriques Amazon SNS pour les notifications dans le guide de l'utilisateur de la console Outils pour développeurs. Consultez également la section Création d'une rubrique Amazon SNS pour des notifications de budget dans le Guide de l'utilisateur Facturation et gestion des coûts AWS.

Assurez-vous que la remise des messages bruts n'est pas activée dans votre rubrique Amazon SNS

AWS Chatbot n'accepte pas la remise de messages bruts. Pour vérifier que la remise de messages bruts n’est pas activée sur votre rubrique Amazon SNS, procédez comme suit :

1.    Ouvrez la console Amazon SNS.

2.    Dans le panneau de navigation de gauche, sélectionnez Topics (Rubriques). Choisissez ensuite le nom de votre rubrique Amazon SNS.

3.    Dans le panneau Details (Détails), pour Raw message delivery (Remise de messages bruts), vérifiez si l'état est indiqué comme enabled (activé) ou disabled (désactivé).

4.    Si l'état indiqué est enabled (activé), désactivez la remise de messages bruts sur votre rubrique Amazon SNS en procédant comme suit :
Choisissez Edit (Modifier).
SélectionnezEnable raw message delivery (Activer la remise de messages bruts) pour désélectionner l'option de remise de messages bruts.
Choisissez Save changes (Enregistrer les modifications).

(Si vous utilisez des rubriques Amazon SNS avec le chiffrement côté serveur activé) Assurez-vous d'inclure les autorisations de politique de clé AWS Key Management Service (AWS KMS) requises

Votre politique de clé AWS KMS doit permettre au service qui envoie des messages de publier sur vos rubriques SNS chiffrées.

Assurez-vous que votre politique de clé AWS KMS inclut la section suivante :
Important : remplacez events.amazonaws.com par le principal de service AWS pour le service qui publie sur vos rubriques SNS chiffrées

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

Remarque : pour tester la configuration à l'aide de la Console de gestion AWS, votre rôle AWS Identity and Access Management (IAM) nécessite l'autorisation d'utiliser la clé AWS KMS.

Veillez à ne pas publier de messages dans votre rubrique Amazon SNS à un rythme supérieur à 10 notifications par seconde

AWS Chatbot peut prendre en charge 10 événements par seconde. Si le nombre d’événements reçus est supérieur à 10, les messages supplémentaires sont restreints.

Pour vérifier si vos événements sont restreints, consultez la métrique EventsThrottled dans vos Amazon CloudWatch Logs pour AWS Chatbot.

(Si vous utilisez Amazon EventBridge) Assurez-vous que vos événements EventBridge n'utilisent pas de transformateurs d'entrée

AWS Chatbot ne reconnaît pas les transformateurs d'entrée EventBridge. Pour vous assurer que vos événements Amazon EventBridge n'utilisent pas de transformateurs d'entrée, procédez comme suit :

1.    Ouvrez la console EventBridge.

2.    Dans le panneau de navigation de gauche, sélectionnez Rules (Règles). Choisissez ensuite le nom de la règle d'événement configurée.

3.    Cochez la case en regard de la rubrique Amazon SNS que vous avez configurée comme cible pour la règle. Ensuite, sélectionnez View details (Afficher les détails).

4.    Vérifiez si Input Transformer (Transformateur d'entrée) est répertorié ou non sous la section Input (Entrée) de la page de détails. Si Input Transformer (Transformateur d'entrée) est présent, supprimez les transformateurs d'entrée de votre règle.

Remarque : pour plus d'informations, consultez la section Transformation de l'entrée cible Amazon EventBridge.

(Si vous utilisez EventBridge) Veillez à ne pas envoyer de notifications d'événements à partir de services AWS qu'AWS Chatbot ne prend pas en charge via EventBridge

AWS Chatbot ne prend pas en charge les notifications d'événements envoyées via Amazon EventBridge à partir des services AWS suivants :

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