Come posso pubblicare un messaggio su un argomento Amazon SNS utilizzando una funzione Lambda?

2 minuti di lettura
0

Voglio pubblicare un messaggio su un argomento di Amazon Simple Notification Service (Amazon SNS) da una funzione AWS Lambda.

Risoluzione

Segui questi passaggi per inviare un messaggio a un soggetto Amazon SNS utilizzando una funzione Lambda.

**Nota:**L'esempio in questo articolo utilizza un runtime Python, ma puoi usare i tuoi runtime Lambda preferiti.

  1. Crea un soggetto Amazon SNS.

  2. Crea una funzione Lambda.

  3. Dalla funzione Lambda, assicurati che il ruolo di esecuzione Lambda disponga delle autorizzazioni per pubblicare il messaggio SNS simili alle seguenti:

**Nota:**Sostituisci your-region, your-account-number e your-topic-name con le tue variabili.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublishSNSMessage",
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:<your-region>:<your-account-number>:<your-topic-name>"
    }
  ]
}
  1. Scegli la scheda **Codice**. Quindi, in **Codice sorgente**, copia e incolla il seguente codice per l'azione [Publish Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sns/client/publish.html) nell'[editor di codice](https://docs.aws.amazon.com/lambda/latest/dg/foundation-console.html#code-editor):
    
import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
   response = client.publish(TopicArn='arn:aws:sns:<region>:<account-number>:<topic-name>',Message="Test message")
   print("Message published")
   return(response)
  1. Verifica la tua funzione Lambda.

Se la tua funzione Lambda è collegata a un Amazon Virtual Private Cloud (Amazon VPC), esegui una delle seguenti operazioni:

Se la tua funzione Lambda richiede l'accesso a internet, assicurati di concedere l'accesso a internet. Per ulteriori informazioni, vedi Come posso concedere l'accesso a Internet a una funzione Lambda connessa a un Amazon VPC?

-oppure-

Per le reti private, crea un endpoint Amazon VPC per Amazon SNS nello stesso VPC. Per ulteriori informazioni, vedi Creazione di un endpoint Amazon VPC per Amazon SNS.

Informazioni correlate

Perché ricevo un errore di autorizzazione quando tento di iscrivere la mia funzione Lambda al mio argomento Amazon SNS?

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa