Quiero publicar un mensaje en un tema de Amazon Simple Notification Service (Amazon SNS) desde una función de AWS Lambda.
Solución
Siga estos pasos para enviar un mensaje a un tema de Amazon SNS mediante una función de Lambda.
Nota: En el ejemplo de este artículo se usa una versión ejecutable de Python, pero puede usar las versiones ejecutables de Lambda que prefiera.
1. Cree un tema de Amazon SNS.
2. Cree una función de Lambda.
3. Desde la función de Lambda, asegúrese de que el rol de ejecución de Lambda tenga permisos para publicar el mensaje SNS similar al siguiente:
Nota: Reemplace your-region (región), your-account-number (nombre de cuenta) y your-topic-name (nombre del tema) por sus variables.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublishSNSMessage",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:<your-region>:<your-account-number>:<your-topic-name>"
}
]
}
4. Seleccione la pestaña Code (Código). A continuación, en Code source (Código fuente), copie y pegue el siguiente código para la acción Publish Boto3 en el editor de código:
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)
5. Pruebe la función de Lambda.
Si la función de Lambda está conectada a una Amazon Virtual Private Cloud (Amazon VPC), tome una de las siguientes medidas:
Si la función de Lambda requiere acceso a Internet, asegúrese de conceder el acceso a Internet. Para obtener más información, consulte ¿Cómo doy acceso a Internet a una función de Lambda que está conectada a una Amazon VPC?
o
Para redes privadas, cree un punto de conexión de Amazon VPC para Amazon SNS en la misma VPC. Para obtener más información, consulte Creación de un punto de conexión de Amazon VPC para Amazon SNS.
Información relacionada
¿Por qué aparece un error de autorización cuando intento suscribir mi función de Lambda a mi tema de Amazon SNS?