Pat*_*ick 3 amazon-sns aws-api-gateway
我可以使用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\"}}"
Run Code Online (Sandbox Code Playgroud)
但我无法找到(或弄清楚)的是如何从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
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
MessageAttributes '{"store":{"DataType":"String","StringValue":"example_corp"}}'
Run Code Online (Sandbox Code Playgroud)
到目前为止无法让它工作,任何帮助都非常感激.
在对AWS文档进行深入研究后,我发现没有准确的文档将API网关资源方法中的SNS Publish MessageAttributes设置为URL查询字符串参数.
根据他们在这里给出的部分语法示例:https://docs.aws.amazon.com/sns/latest/api/API_Publish.html,然后我就能把它扔到它上面,直到出现问题为止.
这是您需要使用的正确的点符号语法和参数:
MessageAttributes.entry.1.Name = "Attribute1"
MessageAttributes.entry.1.Value.DataType = 'String'
MessageAttributes.entry.1.Value.StringValue = 'Test'
Run Code Online (Sandbox Code Playgroud)
需要"Name"和"DataType"的地方.
干杯!
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |