Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用 Amazon SNS 消息属性

Amazon Simple Notification Service (Amazon SNS) 支持将消息属性 传递到 Amazon SQS 终端节点。消息属性可使您提供消息相关的结构化元数据项目(如时间戳、地理空间数据、签名和标识符)。消息属性可选并独立于消息正文,但随正文一起发送到 Amazon SQS 终端节点。此信息可以由消息的接收方用于帮助决定如何处理消息,而不必先处理消息正文。每条消息最多可以包含 10 个属性。要指定消息属性,您可以使用 AWS 软件开发工具包 (SDK) 或查询 API。

重要

要对 Amazon SQS 终端节点使用消息属性,必须将订阅属性 Raw Message Delivery (原始消息传输) 设为 True。想要了解更多有关原始消息传输的信息,请参阅 附录:大型负载和原始消息传输

您还可以使用消息属性,帮助构造移动终端节点的推送通知消息。在这种情况下,消息属性仅用于帮助构造和推送通知消息,而当带有消息属性的消息被发送到 Amazon SQS 终端节点时,消息属性并不会照原样发送到终端节点。

消息属性项目和验证

每个消息属性包含以下项目:

  • 名称 – 消息属性名称可以包含以下字符:A-Z、a-z、0-9、下划线 (_)、连字符 (-) 和句点 (.)。名称不得以句点开头或结尾,并且不应包含连续句点。名称区分大小写,且必须在消息的所有属性名称中是唯一的。名称最多可以有 256 个字符。名称不能以“AWS.”或“Amazon.”(或其他任何大小写变化形式)开头,这是因为这些前缀是预留供 Amazon Web Services 使用的。

  • 类型 – 受支持的消息属性数据类型是字符串、数字和二进制。数据类型在内容方面具有与消息正文相同的限制。数据类型区分大小写,长度可以最多为 256 字节。想要了解更多信息,请参阅消息属性数据类型和验证部分。

  • – 用户指定的消息属性值。对于字符串数据类型,值属性在内容方面具有与消息正文相同的限制。有关更多信息,请参阅Amazon Simple Notification Service API Reference 中的 Publish 操作。

名称、类型和值都不得为空或 null。此外,消息正文也不应为空或 null。消息属性的所有部分 (包括名称、类型和值) 都包含在消息大小限制中,该限制当前是 256 KB (262144 个字节)。

消息属性数据类型和验证

消息属性数据类型指示 Amazon SNS 处理消息属性值的方式。举例来说,如果类型是数字,则 Amazon SNS 会验证它是否为数字。

Amazon SNS 支持以下逻辑数据类型:

  • 字符串 – 字符串是使用 UTF-8 二进制编码的 Unicode。若要获取代码值的列表,请访问 http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters

  • 数字 – 数字是正或负整数或是浮点数。数字具有足够的范围和精度,以便包含整数、浮点数和双精度数通常支持的大多数可能值。数字最多可有 38 位数字精度,并且介于 10^-128 到 10^+126 之间。系统会删减开头和结尾的 0。

  • 二进制 – 二进制类型属性可以存储任何二进制数据,例如压缩数据、加密数据或图像。

预留的消息属性

下表列出推送通知服务的预留消息属性,您可用来构造推送通知消息:

推送通知服务 预留的消息属性 允许的值

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus(可选)

AWS.SNS.MOBILE.BAIDU.MessageType(可选)

AWS.SNS.MOBILE.BAIDU.MessageKey(可选)

1 - 开发环境。2 - 生产环境。(默认值 1)

0 - 应用程序内消息。1 - 警报通知。(默认值 1)

短消息标识符,可附加到您的消息

MPNS

AWS.SNS.MOBILE.MPNS.Type(必需

AWS.SNS.MOBILE.MPNS.NotificationClass(必需

令牌(用于磁贴通知),toast,raw

实时,优先级,正常

WNS

AWS.SNS.MOBILE.WNS.Type(必需

AWS.SNS.MOBILE.WNS.CachePolicy(可选)

AWS.SNS.MOBILE.WNS.Group(可选)

AWS.SNS.MOBILE.WNS.Match(可选)

AWS.SNS.MOBILE.WNS.SuppressPopup(可选)

AWS.SNS.MOBILE.WNS.Tag(可选)

X-WNS-Type 相同

X-WNS-Cache-Policy 相同

X-WNS-Group 相同

X-WNS-Match 相同

X-WNS-SuppressPopup 相同

X-WNS-Tag 相同

有关与 Baidu 一起使用消息属性的更多信息,请参阅使用消息属性来构造消息

利用 AWS 软件开发工具包来使用消息属性

AWS 软件开发工具包提供了多种语言的 API,以便将消息属性用于 Amazon SNS。使用消息属性的 Java 示例在 AWS 示例文件 SNSMobilePush.java 中,该文件包括在 snsmobilepush.zip snsmobilepush.zip 文件中。

设置消息的消息属性时,您可以使用 string 值或 binary 值,但不能同时使用 stringbinary 值。

有关 适用于 Java 的开发工具包 的更多信息,请参阅适用于 Java 的 AWS 软件开发工具包入门