属性数值匹配 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

属性数值匹配

您可以使用数值来匹配消息属性和筛选消息。在 JSON 策略中,不会用双引号将字符串值引起来。您可以使用以下数值操作来匹配消息属性。

注意

属性支持前缀string仅匹配。

精确匹配

当策略属性值包含 numeric 关键字和 = 运算符时,它将匹配具有相同名称和相同数值的任何消息属性。

考虑以下策略属性:

"price_usd": [{"numeric": ["=",301.5]}]

它匹配以下任一消息属性:

"price_usd": {"Type": "Number", "Value": 301.5}
"price_usd": {"Type": "Number", "Value": 3.015e2}

Anything-but 匹配

当策略属性值包含关键字 anything-but 时,它匹配 包含任一策略属性值的任何消息属性。

考虑以下策略属性:

"price": [{"anything-but": [100, 500]}]

它匹配以下任一消息属性:

"price": {"Type": "Number", "Value": 101}
"price": {"Type": "Number", "Value": 100.1}

它还匹配以下消息属性(因为它包含的值不是 100500):

"price": {"Type": "Number.Array", "Value": "[100, 50]"}

但是,它不匹配以下消息属性:

"price": {"Type": "Number", "Value": 100}

值范围匹配

除了 = 运算符之外,数值策略属性还可以包含以下运算符:<<=>>=

考虑以下策略属性:

"price_usd": [{"numeric": ["<", 0]}]

它匹配任何具有负数值的消息属性。

考虑另一个消息属性:

"price_usd": [{"numeric": [">", 0, "<=", 150]}]

它匹配任何具有正数(最大为 150)的消息属性。