使用 node.js 发布到亚马逊 sns 主题的参数示例

example of params for publishing to an amazon sns topic using node.js

我正在尝试使用 Amazon 文档站点遵循 amazon sns 发布示例,但它在 Message、MessageAttributes 和 MessageStructure 上含糊不清。

首先,即使您将MessageStructure 设置为json,Message 属性 也会是一个字符串吗?例如如果我想发送一个对象而不仅仅是一个字符串消息。如果它是字符串 - 在将它作为消息 属性 传递之前,我是否需要 JSON.stringify 我的对象?

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property

我应该改为使用 MessageAttributes 来执行此操作吗?那是什么 属性 - 亚马逊文档仅说明它 "Message attributes for Publish action" 这似乎是同义反复。

http://docs.aws.amazon.com/sns/latest/APIReference/API_Publish.html

将 MessageStructure 设置为 json 仅当您要向 SNS 发送 json 格式的消息结构时才使用特定的 jormat SNS 理解。这仅在您发布到多个端点类型并希望根据端点类型改变消息正文时使用。这与 "I want to send a message where the body has been serialized as JSON."

不同

如果您要发送 "a JSON object,",您需要将其字符串化,并像发送任何其他(非 JSON)消息一样发送它,因为从根本上说,SNS 消息是字符串。

MessageAttributes 完全是另一回事。它们允许您发送伪带外 key/value 对以及您的消息,这可能很有用,例如,如果您的消息已经过 gzip 压缩和 base64 编码(再次举例),您可以附加一个 "external_id" 收件人可以评估的属性,以决定是否需要解压整个邮件或直接丢弃它。