定义多变体特征标志的规则 - Amazon AppConfig
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

定义多变体特征标志的规则

变体规则是由一个或多个操作数和一个运算符组成的表达式。操作数是在规则评估期间使用的特定值。操作数的值可以是静态的,例如文本数字或字符串;也可以是变量,例如在上下文中找到的值或其它表达式的结果。运算符(例如“大于”)是应用于其操作数并产生值的测试或操作。变体规则表达式必须生成“true”或“false”才有效。

操作数

类型 描述 示例

字符串

UTF-8 字符序列,用双引号括起来。

"apple", "Ḽơᶉëᶆ ȋṕšᶙṁ"

整数

64 位整数值。

-7, 42

浮点型

64 位 IEEE-754 浮点值。

3.14, 1.234e-5

Timestamp

特定时刻,如 W3C note on date and time formats 所述。

2012-03-04T05:06:07-08:00, 2024-01

布尔值

True 或 false 值。

true, false

上下文值

$ key 形式的参数化值,在规则评估期间从上下文中检索。

$country, $userId

比较运算符

运算符 描述 示例

eq

确定上下文值是否等于给定值。

(eq $state "Virginia")

gt

确定上下文值是否大于给定值。

(gt $age 65)

gte

确定上下文值是否大于或等于给定值。

(gte $age 65)

lt

确定上下文值是否小于给定值。

(lt $age 65)

lte

确定上下文值是否小于或等于给定值。

(lte $age 65)

逻辑运算符

运算符 描述 示例

以及

确定两个操作数是否为 true。

(and (eq $state "Virginia") (gt $age 65) )

确定是否至少有一个操作数为 true。

(or (eq $state "Virginia") (gt $age 65) )

not

反转表达式的值。

(not (eq $state "Virginia"))

自定义运算符

运算符 描述 示例

begins_with

确定上下文值是否以给定前缀开头。

(begins_with $state "A")

ends_with

确定上下文值是否以给定前缀结尾。

(ends_with $email "amazon.com")

contains

确定上下文值是否包含给定的子字符串。

(contains $promoCode "WIN")

in

确定上下文值是否包含在常量列表中。

(in $userId ["123", "456"])

matches

确定上下文值是否与给定的正则表达式模式匹配。

(matches in::$greeting pattern::"h.*y")

exists

确定是否为上下文键提供了任何值。

(exists key::"country")

split

根据所提供上下文值的一致哈希值,对于给定百分比的流量计算为 true。有关split工作原理的详细说明,请参阅本主题的下一节了解拆分运算符

请注意,seed 是一个可选属性。如果您不指定 seed,则哈希值是本地一致的,这意味着该标志的流量将被一致地拆分,但接收相同上下文值的其它标志可能会以不同的方式拆分流量。如果提供了 seed,则每个唯一值都可以保证在功能标志、配置文件和 Amazon Web Services 账户之间一致地拆分流量。

(split pct::10 by::$userId seed::"abc")