python-2.7 - AWS : Publish SNS message for Lambda function via boto3 (Python2)

标签 python-2.7 amazon-sns aws-lambda boto3

我正在尝试发布到 SNS 主题,然后该主题将通知 Lambda 函数以及 SQS 队列。我的 Lambda 函数确实被调用,但 CloudWatch 日志指出我的“事件”对象为 None。 boto3 文档声明使用 kwarg MessageStructure='json' 但这会引发 ClientError。

希望我提供了足够的信息。

示例代码:

import json
import boto3

message = {"foo": "bar"}
client = boto3.client('sns')
response = client.publish(
    TargetArn=arn,
    Message=json.dumps(message)
)

最佳答案

您需要向消息负载添加一个default键,并指定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'
)

关于python-2.7 - AWS : Publish SNS message for Lambda function via boto3 (Python2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029251/

相关文章:

bash - 在 PyQt4 GUI 中获取 bash 文件

Python 2.7。使用正则表达式从字符串的某些部分提取数据

python - 根据给定数字按 -5 和 + 5 创建列表

amazon-web-services - 仅在处理完同一主题的 SQS 订阅后才调用 AWS Lambda SNS 事件

java - 使用 Java 的亚马逊 sns 和 sqs 消息

amazon-web-services - SES 事件序列

aws-lambda - 具有特定依赖项的无服务器部署 lambda@edge

python - 通过插入 ':' 格式化字符串

amazon-web-services - AWS lambda : Passing data from custom authorizer to business lambda

amazon-web-services - 集成请求中的Amazon API Gateway的主体映射模板如何工作?