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.
-
Crea un topic Amazon SNS.
-
Crea una funzione Lambda.
-
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.
-
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)
-
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?