You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置RawMessageDelivery为false创建SNS-Lambda订阅遇AWS错误求助

Lambda订阅SNS时RawMessageDelivery属性报错的解决

你遇到的问题核心是:Lambda作为SNS订阅端点时,SNS API不允许在订阅属性中包含RawMessageDelivery键——不管你把它设为true还是false。AWS的校验逻辑是只要这个属性存在,就会判定你在尝试配置原始消息投递,而Lambda协议本身不支持这个功能,因此直接返回错误。

结合你引用的AWS文档:

当设置为true时,[RawMessageDelivery]将为Amazon SQS或HTTP/S端点启用原始消息投递。

明确可以看到,RawMessageDelivery仅针对SQS、HTTP/S端点生效,Lambda不在支持范围内。对于Lambda订阅,默认就是非原始消息投递的模式,完全不需要显式设置这个属性。

修正后的代码

直接移除包含RawMessageDelivery的属性配置即可:

sns_client = boto3.client('sns', region_name='us-east-2')
topic_arn = 'arn:aws:sns:us-east-2:myacct:my-topic'
protocol = 'lambda'
endpoint = 'arn:aws:lambda:us-east-2:myacct:function:my-lambda-function'

# 无需传递Attributes参数,默认行为即为非原始消息投递
sns_client.subscribe(TopicArn=topic_arn, Protocol=protocol, Endpoint=endpoint)

如果后续需要为Lambda订阅配置其他支持的属性(比如FilterPolicy),只需在Attributes字典中添加对应键值对,不要包含RawMessageDelivery即可。

内容的提问来源于stack exchange,提问作者lreeder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:24:16