AWS: Publish SNS message for Lambda function via boto3 (Python2)
you need to add a default
key to your message payload, and specify MessageStructure
:
import json
import boto3
message = {"foo": "bar"}
client = boto3.client('sns')
response = client.publish(
TargetArn=arn,
Message=json.dumps({'default': json.dumps(message)}),
MessageStructure='json'
)
Just in case you want to have different messages for sms and email subscribers:
import json
import boto3
message = {"foo": "bar"}
client = boto3.client('sns')
response = client.publish(
TargetArn=arn,
Message=json.dumps({'default': json.dumps(message),
'sms': 'here a short version of the message',
'email': 'here a longer version of the message'}),
Subject='a short subject for your message',
MessageStructure='json'
)