Amazon Simple Notification Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon SNS 消息属性

Amazon SNS 支持传输消息属性,消息属性可让您提供消息相关的结构化元数据项目(如时间戳、地理空间数据、签名和标识符)。每条消息最多可以包含 10 个属性。

消息属性是可选的,并独立于消息正文(但随消息正文一起发送)。接收方可以使用此信息来决定如何处理消息,而不必先处理消息正文。

有关使用 AWS 管理控制台或 AWS SDK for Java 发送带有属性的消息的信息,请参阅将带有属性的消息发布到 Amazon SNS 主题教程。

重要

要对 Amazon SQS 终端节点使用消息属性,必须将订阅属性 Raw Message Delivery 设置为 True。有关原始消息传递的详细信息,请参阅 Amazon SNS 大型负载和原始消息传输

当消息结构为 String 而不是 JSON 时,仅发送消息属性。

您还可以使用消息属性,帮助构造移动终端节点的推送通知消息。在这种情况下,消息属性仅用于帮助构造推送通知消息。这些属性不会被传递到终端节点,就像在发送带有消息属性的消息到 Amazon SQS 终端节点时一样。

您还可以使用消息属性来让消息变为可通过订阅筛选策略进行筛选。可以将筛选策略应用于主题订阅。应用了筛选策略后,订阅将只接收具有策略接受的属性的那些消息。有关更多信息,请参阅 消息筛选

消息属性项目和验证

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

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

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

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

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

消息属性数据类型和验证

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

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

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

  • String.Array – 格式为字符串的阵列,可以包含多个值。这些值可以是字符串、数字或关键字 truefalsenull

  • Number – 数字是正或负整数或是浮点数。数字具有足够的范围和精度,以便包含整数、浮点数和双精度数通常支持的大多数可能值。数字的值可以介于 -109 到 109 之间,精确至小数点后 5 位数。系统会删减开头和结尾的 0。

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

为移动推送通知预留的消息属性

下表列出了可用于构造推送通知消息的移动推送通知服务的预留消息属性:

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

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus

False
  • 1(开发环境;默认值)

  • 2(生产环境)

AWS.SNS.MOBILE.BAIDU.MessageType False
  • 0(应用程序内消息)

  • 1(警报通知;默认值)

AWS.SNS.MOBILE.BAIDU.MessageKey False 短消息标识符

MPNS

AWS.SNS.MOBILE.MPNS.Type

True
  • raw

  • toast

  • token(用于磁贴通知)

AWS.SNS.MOBILE.MPNS.NotificationClass True
  • priority

  • real time

  • regular

WNS

AWS.SNS.MOBILE.WNS.Type True X-WNS-Type 相同
AWS.SNS.MOBILE.WNS.CachePolicy False X-WNS-Cache-Policy 相同
AWS.SNS.MOBILE.WNS.Group False X-WNS-Group 相同
AWS.SNS.MOBILE.WNS.Match False X-WNS-Match 相同
AWS.SNS.MOBILE.WNS.SuppressPopup False X-WNS-SuppressPopup 相同
AWS.SNS.MOBILE.WNS.Tag False X-WNS-Tag 相同