- 确保API网关和SNS都在相同的AWS区域中,并且正确配置了SNS主题策略以允许API网关链接。
- 确保在API网关设置中正确设置了SNS集成,并填写了相应的消息格式和主题ARN。
- 确认API网关中包含了所有必要的消息属性,并且它们与SNS主题策略中指定的属性名称匹配。
- 简化消息属性的内容,以便SNS可以正确处理它。例如,如果消息属性值是JSON格式,请尝试使用双引号而不是单引号。
- 确认SNS主题中已经创建了正确的订阅,以便接收从API网关发送的消息。
- 在代码中使用适当的AWS SDK方法将消息发送到SNS主题,例如使用AWS SDK for Python(Boto3)中的publish方法。
示例代码(Boto3 for Python):
import json
import boto3
def send_message_to_sns():
sns = boto3.client('sns')
message = {"id": "12345", "status": "success"}
message_attributes = {
"id": {
"DataType": "String",
"StringValue": "12345"
},
"status": {
"DataType": "String",
"StringValue": "success"
}
}
response = sns.publish(
TopicArn='<SNS_TOPIC_ARN>',
Message=json.dumps(message),
MessageAttributes=message_attributes
)
print(response)