Perché il mio AWS Chatbot non riceve messaggi da Amazon SNS?

Ultimo aggiornamento: 20 settembre 2021

Ho sottoscritto un AWS Chatbot per il mio argomento Amazon Simple Notification Service (Amazon SNS). Tuttavia, le notifiche dal mio argomento Amazon SNS non raggiungono AWS Chatbot. In che modo posso risolvere il problema?

Breve descrizione

Se le notifiche dell'argomento Amazon SNS non raggiungono AWS Chatbot, una delle seguenti opzioni è configurata in modo errato:

  • (Solo per Slack) Il canale di comunicazione tra AWS Chatbot e il canale Slack.
  • (Per Slack e Amazon Chime) Il canale di comunicazione tra l'argomento Amazon SNS e AWS Chatbot.

Per risolvere il problema, procedi come segue.

Risoluzione

Attiva CloudWatch Logs per il tuo AWS Chatbot

(Solo per Slack) Verifica che il canale di comunicazione tra AWS Chatbot e il canale Slack sia configurato correttamente

Assicurati che il canale Slack non sia archiviato o eliminato

I canali Slack archiviati o eliminati non possono ricevere messaggi. Tutte le app nei canali Slack archiviati o eliminati sono disattivate.

Per annullare l'archiviazione di un canale, consulta Archiviare o annullare l'archiviazione di un canale nel centro assistenza di Slack.

Nota: non è possibile annullare l'eliminazione di un canale Slack. Se il canale Slack sottoscritto viene eliminato, devi creare un nuovo canale Slack e configurare il nuovo canale per ricevere notifiche dal tuo argomento.

Assicurati che l'app AWS Chatbot sia installata nell'area di lavoro di Slack

Controlla in AWS Chatbot CloudWatch Logs il seguente messaggio di errore: account_inactive. Se visualizzi un messaggio di errore account_inactive, l'app AWS Chatbot non è installata nell'area di lavoro di Slack.

Per installare l'app AWS Chatbot nell'area di lavoro di Slack, segui le istruzioni in Configurare client di chat per AWS Chatbot.

(Solo per canali Slack privati) Assicurati che l'app AWS Chatbot sia aggiunta al canale Slack

Controlla in AWS Chatbot CloudWatch Logs il seguente messaggio di errore: channel_not_found. Se viene visualizzato un messaggio di errore channel_not_found, l'app AWS Chatbot non è stata aggiunta al canale privato.

Per aggiungere AWS Chatbot a un canale Slack privato, esegui il comando /invite@AWS nel canale privato.

(Per Slack e Amazon Chime) Verifica che il canale di comunicazione tra l'argomento Amazon SNS e AWS Chatbot sia configurato correttamente

Assicurati che AWS Chatbot sia sottoscritto al tuo argomento Amazon SNS

1.    Apri la console di AWS Chatbot.

2.    In Configured clients (Client configurati), scegli Slack o Amazon Chime in base al tuo caso d'uso.

3.    Scegli il tuo canale Slack nella configurazione dell'area di lavoro di Slack o il webhook nell'elenco dei webhook di Amazon Chime.

4.    Seleziona Edit (Modifica).

5.    Nel riquadro Details (Dettagli), in Topics (Argomenti), verifica che il tuo argomento Amazon SNS sia elencato. Se il tuo argomento Amazon SNS non è elencato, devi sottoscrivere AWS Chatbot al tuo argomento Amazon SNS.

Assicurati che l'endpoint AWS Chatbot sia elencato come sottoscrizione agli argomenti per il tuo argomento Amazon SNS

1.    Apri la console Amazon SNS.

2.    Nel riquadro di navigazione a sinistra, seleziona Topics (Argomenti). Quindi, scegli il nome dell'argomento Amazon SNS.

3.    In Topic subscriptions (Sottoscrizioni agli argomenti), assicurati che sia elencato il seguente endpoint AWS Chatbot: https://global.sns-api-chatbot.amazonaws.com. Se l'endpoint AWS Chatbot non è elencato come sottoscrizione agli argomenti, devi sottoscrivere AWS Chatbot all'argomento Amazon SNS.

Nota: per testare la configurazione, utilizza la configurazione di AWS Chatbot per inviare una notifica di prova.

Assicurati di non pubblicare manualmente messaggi sul tuo argomento Amazon SNS

AWS Chatbot non supporta i messaggi pubblicati manualmente su un argomento Amazon SNS. Assicurati di inviare notifiche di Amazon SNS ad AWS Chatbot solo tramite uno dei servizi supportati da AWS Chatbot.

Assicurati che il servizio AWS che pubblica messaggi sul tuo argomento Amazon SNS sia supportato da AWS Chatbot

Controlla in AWS Chatbot CloudWatch Logs il seguente messaggio di errore: Event Received is not supported (Evento ricevuto non supportato). Se visualizzi un messaggio di errore Event Received is not supported (Evento ricevuto non supportato), il servizio che pubblica messaggi sul tuo argomento non è supportato da AWS Chatbot.

Per un elenco completo dei servizi supportati da AWS Chatbot, consulta Utilizzo di AWS Chatbot con altri servizi AWS.

Assicurati che la policy di accesso del tuo argomento Amazon SNS conceda le autorizzazioni necessarie perché un altro servizio AWS pubblichi messaggi sull'argomento

1.    Apri la console Amazon SNS.

2.    Nel riquadro di navigazione a sinistra, seleziona Topics (Argomenti).

3.    Scegli l'argomento a cui hai sottoscritto AWS Chatbot. Quindi, seleziona Edit (Modifica).

4.    Scegli la scheda Access policy (Policy di accesso). Quindi, rivedi la sezione Dichiarazione della policy di accesso. Assicurati che la policy consenta al servizio AWS corretto di eseguire l'azione API SNS:Publish.

5.    Se la policy di accesso di Amazon SNS non consente al servizio corretto di pubblicare eventi sul tuo argomento, aggiorna la policy effettuando le seguenti operazioni:
Nella sezione Details (Dettagli) della pagina dell'argomento, scegli Edit (Modifica).
Espandi la sezione Access policy (Policy di accesso) e quindi aggiungi le autorizzazioni richieste.

Nota: per le policy di accesso di Amazon SNS di esempio, consulta la sezione relativa alla configurazione degli argomenti Amazon SNS per le notifiche nella guida per l'utente della console di Developer Tools. Inoltre, consulta le sezione relativa alla creazione di un argomento Amazon SNS per le notifiche di budget nella guida per l'utente di AWS Billing and Cost Management.

Assicurati che la consegna di messaggi non elaborati non sia attivata nel tuo argomento Amazon SNS

AWS Chatbot non accetta la consegna di messaggi non elaborati. Per verificare che la consegna di messaggi non elaborati sia attivata sul tuo argomento Amazon SNS, procedi come segue:

1.    Apri la console Amazon SNS.

2.    Nel riquadro di navigazione a sinistra, seleziona Topics (Argomenti). Quindi, scegli il nome dell'argomento Amazon SNS.

3.    Nel riquadro Details (Dettagli), per Raw message delivery (Consegna di messaggi non elaborati), verifica se lo stato è elencato come abilitato o disabilitato.

4.    Se lo stato è elencato come abilitato, disattiva la consegna di messaggi non elaborati nel tuo argomento Amazon SNS effettuando le seguenti operazioni:
Seleziona Edit (Modifica).
Scegli Enable raw message delivery (Abilita consegna di messaggi non elaborati) per deselezionare l'opzione di consegna dei messaggi non elaborati.
Scegli Save changes (Salva modifiche).

Assicurati che nel tuo argomento Amazon SNS non sia attivata la crittografia lato server (SSE)

AWS Chatbot non supporta SSE. Per verificare che SSE non sia attivato nel tuo argomento Amazon SNS, procedi come segue:

1.    Apri la console Amazon SNS.

2.    Nel riquadro di navigazione a sinistra, seleziona Topics (Argomenti). Quindi, scegli il nome dell'argomento Amazon SNS.

3.    Nel riquadro Details (Dettagli), per Encryption (Crittografia), verifica se lo stato è elencato come Configurato o Disabilitato.

4.    Se lo stato è elencato come Configurato, disattiva SSE nell'argomento Amazon SNS effettuando le seguenti operazioni:
Seleziona Edit (Modifica).
Espandi Encryption (Crittografia).
Scegli Disable encryption (Disattiva crittografia).
Scegli Save Changes (Salva modifiche).

Assicurati di non pubblicare messaggi sul tuo argomento Amazon SNS a una velocità superiore a 10 notifiche al secondo

AWS Chatbot consente 10 eventi al secondo. Se vengono ricevuti più di 10 eventi al secondo, vengono limitati i messaggi aggiuntivi.

Per verificare se gli eventi vengono limitati, vedi il parametro EventsThrottled in Amazon CloudWatch Logs per AWS Chatbot.

(Se utilizzi Amazon EventBridge) Assicurati che gli eventi EventBridge non utilizzino trasformatori di input

AWS Chatbot non riconosce i trasformatori di ingresso EventBridge. Per verificare se gli eventi Amazon EventBridge non utilizzano trasformatori di input, procedi come segue:

1.    Apri la console di EventBridge.

2.    Nel riquadro di navigazione a sinistra, scegli Rules (Regole). Quindi, scegli il nome della regola di evento configurata.

3.    Seleziona la casella di controllo accanto all'argomento Amazon SNS che hai configurato come destinazione per la regola. Quindi, scegli View details (Visualizza dettagli).

4.    Verifica se Input Transformer (Trasformatore di input) è elencato o meno nella sezione Input della pagina dei dettagli. Se Input Transformer (Trasformatore di input) è elencato, rimuovi i trasformatori di input dalla regola.

Nota: per ulteriori informazioni, consulta la sezione relativa alla trasformazione dell'input di destinazione di Amazon EventBridge.

(Se utilizzi EventBridge) Assicurati di non inviare notifiche di eventi dai servizi AWS che AWS Chatbot non supporta tramite EventBridge

AWS Chatbot non supporta le notifiche di eventi inviate tramite Amazon EventBridge dai seguenti servizi AWS:

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