View a markdown version of this page

创建受众规则 - AWS AppConfig

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

创建受众规则

众规则部分包括规则生成器选项卡和编辑器选项卡,用于创建规则以定位实验受众。

使用受众规则生成器

规则生成器提供了一个可视化界面,无需编写表达式即可定义受众定位规则。您可以使用属性创建条件并将它们与逻辑运算符组合在一起,以控制实验中包括哪些用户。在规则生成器中,您可以通过组合条件和组来定义规则:

  • 条件评估单个属性(例如,$plan equals "enterprise")。

  • 组使用逻辑运算符(如 AND or)组合多个条件OR

每个组的计算结果为truefalse。符合总体规则的用户将包含在目标受众中。

当您想执行以下操作时,请使用规则生成器:

  • 无需编写表达式即可快速定义或修改受众规则

  • 可视化条件是如何分组和评估的

  • 逐步构建和验证定位逻辑

下面是一些示例:

在高级账户等级中定位用户的规则。

使用指定示例受众规则 AWS AppConfig 进行实验的 “规则生成器” 选项卡的图像。

使用特定电子邮件域在特定地理区域定位用户的规则。

规则生成器选项卡的第二张图片,该选项卡 AWS AppConfig 正在尝试指定受众规则示例。

一种规则,用于在特定计划中定位特定用户,或者在选择加入测试计划时使用二级套餐的用户。

规则生成器选项卡的第三张图片,该选项卡 AWS AppConfig 正在实验中指定了受众群体规则示例。

与编辑的关系

规则生成器和编辑器以不同的格式定义相同的定位逻辑:

  • 规则生成器提供了一种构造规则的可视化方式。

  • 编辑器显示等效的逻辑表达式。

在一个视图中所做的更改会反映在另一个视图中。

最佳实践

  • 保持规则的可读性 — 使用群组按逻辑组织条件,避免结构深度嵌套。

  • 验证属性值-确保属性名称和值与应用程序提供的名称和值相匹配。

  • 暴露前测试 — 使用 0% 的曝光率和治疗分配替代来确认您的规则是否符合预期。

使用编辑器

该编辑器允许您定义定位规则,以确定实验中包含哪些用户。您可以将这些规则指定为逻辑表达式,用于评估用户或设备属性,例如平台、区域或应用程序版本。实验运行时, AWS AppConfig 评估每个用户的表达式。符合标准的用户将包含在目标受众中,可以被分配接受治疗。

表达式格式

表达式使用前缀(函数风格)语法:

(operator argument1 argument2 ...)

例如:

(and (eq $system "iPhone") (lt $osVersion 1.8) )

此表达式包括以下用户:

  • 使用 iPhone,然后

  • 操作系统版本早于 1.8

编辑器支持与规则生成器相同的定位方案。有关受众规则的直观示例,请参阅使用受众规则生成器

定义属性

属性代表正在评估的用户或环境的属性。使用$前缀引用属性。

常见示例包括:

  • $system— 设备或平台类型

  • $osVersion— 操作系统版本

  • $region— 地理区域

  • $appVersion— 应用程序版本

可用属性取决于您的应用程序以及将数据传递到的方式 AWS AppConfig。

写作表达式

您可以使用逻辑运算符组合多个条件:

  • 用于and要求所有条件都为真

  • or用于匹配任何条件

  • not用于排除条件

示例:

(and (eq $region "us-east-1") (or (eq $system "iPhone") (eq $system "Android") ) )

此表达式针对的是使用iPhone或安卓设备的用户。us-east-1

最佳实践

  • 从简单开始 — 从一小部分条件开始,然后根据需要进行扩展。

  • 验证属性-确保表达式中使用的属性始终填充。

  • 避免过于复杂的表达式 — 复杂的逻辑会使定位更难理解和维护。

  • 暴露前测试 — 使用 0% 的曝光率和治疗分配替代来确认您的规则是否符合预期。

表达式运算符

受众表达式支持以下运算符。

逻辑运算符

运算符 描述 示例

and

如果所有条件都为真,则返回 true

(and (eq $region "us") (eq $system "iPhone"))

或者

如果任何条件为真,则返回 true

(or (eq $system "iPhone") (eq $system "Android"))

not

如果条件为假,则返回 true

(not (eq $region "eu-west-1"))

比较运算符

运算符 描述 示例

eq

Equals

(eq $system "iPhone")

ne

Not equal

(ne $region "us-west-2")

lt

Less than

(lt $osVersion 1.8)

lte

Less than or equal

(lte $osVersion 2.0)

gt

Greater than

(gt $appVersion 5.0)

gte

Greater than or equal

(gte $appVersion 5.0)

字符串和集合运算符

运算符 描述 示例

in

匹配列表中的任何值

(in $region ["us-east-1" "us-west-2"])

contains

检查一个值是否包含子字符串

(contains $deviceName "iPhone")

注意

可用运算符可能会有所不同,具体取决于应用程序中属性的定义和评估方式。