了解多变体功能标志规则
在创建功能标志变体时,可以为其指定规则。规则是将上下文值作为输入并生成布尔结果作为输出的表达式。例如,可以定义一条规则来为测试版用户(由其账户 ID 标识)选择标志变体,同时测试用户界面刷新。对于此场景,请执行以下操作:
-
创建一个名为 UI Refresh 的新功能标志配置文件。
-
创建一个名为 ui_refresh 的新功能标志。
-
在创建功能标志后,对其进行编辑来添加变体。
-
创建并启用名为 BetaUsers 的新变体。
-
为 BetaUsers 定义一条规则,如果请求上下文中的账户 ID 位于获准查看新测试版体验的账户 ID 列表中,此规则将选择该变体。
-
确认默认变体的状态设置为已禁用。
注意
根据在控制台中定义的顺序,将变体作为有序列表进行评估。将首先评估列表顶部的变体。如果没有规则与提供的上下文匹配,则 Amazon AppConfig 返回默认变体。
在 Amazon AppConfig 处理功能标志请求时,它首先将提供的上下文 [包括 AccountID(对于本示例] 与 BetaUsers 变体进行比较。如果上下文与 BetaUsers 的规则相匹配,Amazon AppConfig 返回测试版体验的配置数据。如果上下文不包含账户 ID 或者账户 ID 以 123 之外的任意值结尾,则 Amazon AppConfig 返回默认规则的配置数据,这意味着用户会在生产环境中看到当前体验。
定义 规则
变体规则是由一个或多个操作数和一个运算符组成的表达式。操作数是在规则评估期间使用的特定值。操作数的值可以是静态的,例如文本数字或字符串;也可以是变量,例如在上下文中找到的值或其它表达式的结果。运算符(例如“大于”)是应用于其操作数并产生值的测试或操作。变体规则表达式必须生成“true”或“false”才有效。
操作数
类型 | 描述 | 示例 |
---|---|---|
String |
UTF-8 字符序列,用双引号括起来。 |
|
整数 |
64 位整数值。 |
|
浮点型 |
64 位 IEEE-754 浮点值。 |
|
Timestamp |
特定时刻,如 W3C note on date and time formats |
|
布尔值 |
True 或 false 值。 |
|
上下文值 |
$ |
|
比较运算符
运算符 | 描述 | 示例 |
---|---|---|
eq |
确定上下文值是否等于给定值。 |
|
gt |
确定上下文值是否大于给定值。 |
|
gte |
确定上下文值是否大于或等于给定值。 |
|
lt |
确定上下文值是否小于给定值。 |
|
lte |
确定上下文值是否小于或等于给定值。 |
|
逻辑运算符
运算符 | 描述 | 示例 |
---|---|---|
以及 |
确定两个操作数是否为 true。 |
|
或者 |
确定是否至少有一个操作数为 true。 |
|
not |
反转表达式的值。 |
|
自定义运算符
运算符 | 描述 | 示例 |
---|---|---|
begins_with |
确定上下文值是否以给定前缀开头。 |
|
ends_with |
确定上下文值是否以给定前缀结尾。 |
|
contains |
确定上下文值是否包含给定的子字符串。 |
|
in |
确定上下文值是否包含在常量列表中。 |
|
matches |
确定上下文值是否与给定的正则表达式模式匹配。 |
|
exists |
确定是否为上下文键提供了任何值。 |
|
split |
根据所提供上下文值的一致哈希值,对于给定百分比的流量计算为 请注意, |
|