如何从API网关集成请求向SNS发布添加消息属性

时间:2018-03-16 01:27:30

标签: aws-api-gateway amazon-sns

我可以使用CLI找到这种格式

aws sns publish --topic-arn arn:aws:sns:us-west-2:111111111111:test
    --message "Testing the CLI" 
    --subject "From the CLI" --message-attributes "{\"somename\":
        {\"DataType\":\"String\",\"StringValue\":\"somevalue\"}}"

但我无法找到(或弄清楚)是如何从API网关上的集成请求中执行此操作。

我认为它需要作为集成请求的查询参数来完成,但语法与为SQS添加消息属性不同。我通过使用此示例中的参数命名符号来测试它:

MessageBody=This+is+a+test+message
MessageAttribute.1.Name=test_attribute_name_1
MessageAttribute.1.Value.StringValue=test_attribute_value_1
MessageAttribute.1.Value.DataType=String

我也尝试过:

MessageAttributes   '{"store":{"DataType":"String","StringValue":"example_corp"}}'

enter image description here

到目前为止无法使其正常运行,我们非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

在对AWS文档进行深入研究后,我发现没有准确的文档将API网关资源方法中的SNS Publish MessageAttributes设置为URL查询字符串参数。

基于他们在这里给出的部分语法示例:here,然后我就能把它扔到它上面直到出现问题。

这是您需要使用的正确的点符号语法和参数:

MessageAttributes.entry.1.Name = "Attribute1"
MessageAttributes.entry.1.Value.DataType = 'String'
MessageAttributes.entry.1.Value.StringValue = 'Test'

Where"姓名"和" DataType"是必需的。

https://docs.aws.amazon.com/sns/latest/api/API_Publish.html

干杯!