Salta al contenuto

Come posso utilizzare una funzione Lambda per pubblicare un messaggio su un topic Amazon SNS?

2 minuti di lettura
0

Desidero pubblicare un messaggio su un topic Amazon Simple Notification Service (Amazon SNS) da una funzione AWS Lambda.

Risoluzione

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

Nota: l'esempio in questo articolo utilizza un runtime Python, ma puoi anche utilizzare i tuoi runtime Lambda preferiti.

  1. Crea un topic Amazon SNS.

  2. Crea una funzione Lambda.

  3. Dalla funzione Lambda, assicurati che il ruolo di esecuzione Lambda abbia le autorizzazioni per pubblicare il messaggio SNS. Ad esempio:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublishSNSMessage",
                "Effect": "Allow",
                "Action": "sns:Publish",
                "Resource": "arn:aws:sns:your-region:your-account-number:your-topic-name"
            }
        ]
    }

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

  4. Nella pagina Funzioni di Lambda, seleziona la scheda Codice. Quindi, in Origine del codice, copia e incolla il seguente codice per l'azione Publish Boto3 nell'editor di codice:

    import json
    import boto3
    client = boto3.client('sns')
    def lambda_handler(event, context):
       response = client.publish(TopicArn='arn:aws:sns:your-region:account-number:topic-name',Message="Test message")
       print("Message published")
       return(response)
    
  5. Verifica la funzione Lambda.

Se la tua funzione Lambda è connessa a un Amazon Virtual Private Cloud (Amazon VPC), esegui una di queste operazioni:

Informazioni correlate

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