

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立對象規則
<a name="appconfig-experimentation-about-specifying-audience-rule-section"></a>

**對象規則**區段包含**規則建置器**標籤和**編輯器**標籤，用於建立規則以將實驗對象設為目標。

**Topics**
+ [使用對象規則建置器](#appconfig-experimentation-about-specifying-audience-rule-builder)
+ [使用編輯器](#appconfig-experimentation-about-specifying-audience-editor)

## 使用對象規則建置器
<a name="appconfig-experimentation-about-specifying-audience-rule-builder"></a>

規則建置器提供視覺化界面，用於定義以規則為目標的對象，而無需撰寫表達式。您可以使用屬性建立條件，並將其與邏輯運算子結合，以控制實驗中包含哪些使用者。在規則建置器中，您可以結合條件和群組來定義規則：
+ 條件會評估單一屬性 （例如，`$plan equals "enterprise"`)。
+ 群組使用邏輯運算子結合多個條件，例如 `AND`或 `OR`。

每個群組評估為 `true`或 `false`。符合整體規則的使用者會包含在目標對象中。

當您想要執行下列動作時，請使用規則建置器：
+ 快速定義或修改對象規則，無需撰寫表達式
+ 視覺化條件的分組和評估方式
+ 逐步建置和驗證目標邏輯

以下是一些範例：

**以 Premium 帳戶方案中的使用者為目標的規則。**

![使用指定的範例受眾規則進行 AWS AppConfig 實驗時，規則建置器標籤的影像。](http://docs.aws.amazon.com/zh_tw/appconfig/latest/userguide/images/experimentation-rule-builder-1.png)


**使用特定電子郵件網域以特定地理區域的使用者為目標的規則。**

![規則建置器標籤的第二個影像， AWS AppConfig 用於實驗指定的範例受眾規則。](http://docs.aws.amazon.com/zh_tw/appconfig/latest/userguide/images/experimentation-rule-builder-2.png)


**在特定計劃中以特定 使用者為目標，或在選擇加入 Beta 版計劃時使用次要計劃的規則。**

![使用指定的範例受眾規則進行 AWS AppConfig 實驗時，規則建置器標籤的第三個影像。](http://docs.aws.amazon.com/zh_tw/appconfig/latest/userguide/images/experimentation-rule-builder-3.png)


**與編輯器的關係**

規則建置器和編輯器以不同的格式定義相同的目標邏輯：
+ 規則建置器提供建構規則的視覺化方式。
+ 編輯器會顯示同等的邏輯表達式。

在一個檢視中所做的變更會反映在另一個檢視中。

**最佳實務**
+ 保持規則可讀性 – 使用群組以邏輯方式組織條件，並避免深度巢狀結構。
+ 驗證屬性值 – 確保屬性名稱和值與您應用程式提供的屬性名稱和值相符。
+ 暴露前測試 – 使用 0% 暴露和處理指派覆寫來確認您的規則如預期般運作。

## 使用編輯器
<a name="appconfig-experimentation-about-specifying-audience-editor"></a>

編輯器可讓您定義目標規則，以決定實驗中包含哪些使用者。您可以將這些規則指定為評估使用者或裝置屬性的邏輯表達式，例如平台、區域或應用程式版本。當實驗執行時， 會 AWS AppConfig 評估每個使用者的表達式。符合條件的使用者會包含在目標對象中，並可指派給處理方式。

**表達式格式**

運算式使用字首 （函數樣式） 語法：

```
(operator argument1 argument2 ...)
```

例如：

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

此表達式包含下列使用者：
+ 使用 iPhone，以及
+ 作業系統版本早於 1.8

編輯器支援與規則建置器相同的目標案例。如需對象規則的視覺化範例，請參閱 [使用對象規則建置器](#appconfig-experimentation-about-specifying-audience-rule-builder)。

**定義屬性**

屬性代表正在評估之使用者或環境的屬性。屬性會以`$`字首參考。

常見的範例包括：
+ `$system` – 裝置或平台類型
+ `$osVersion` – 作業系統版本
+ `$region` – 地理區域
+ `$appVersion` – 應用程式版本

可用的屬性取決於您的應用程式以及資料的傳遞方式 AWS AppConfig。

**撰寫表達式**

您可以使用邏輯運算子結合多個條件：
+ 使用 `and` 要求所有條件為 true
+ 使用 `or` 來比對任何條件
+ 使用 `not`排除條件

範例：

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

此表達式以使用 iPhone 或 Android 裝置`us-east-1`的使用者為目標。

**最佳實務**
+ 開始簡單 – 從一小組條件開始，並視需要展開。
+ 驗證屬性 – 確保運算式中使用的屬性一致填入。
+ 避免過於複雜的表達式 – 複雜的邏輯可能會使目標更難理解和維護。
+ 暴露前測試 – 使用 0% 暴露和處理指派覆寫來確認您的規則如預期般運作。

**表達式運算子**

對象表達式支援下列運算子。

邏輯運算子



| 運算子 | 說明 | 範例 | 
| --- | --- | --- | 
| 及 | 如果所有條件都是 true，則傳回 true | `(and (eq $region "us") (eq $system "iPhone"))` | 
| 或 | 如果任何條件為 true，則傳回 true | `(or (eq $system "iPhone") (eq $system "Android"))` | 
| 非 | 如果條件為 false，則傳回 true | `(not (eq $region "eu-west-1"))` | 

比較運算子



| 運算子 | 說明 | 範例 | 
| --- | --- | --- | 
| eq | Equals | `(eq $system "iPhone")` | 
| ne | 不等於 | `(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")` | 

**注意**  
可用的運算子可能會根據您的應用程式中屬性的定義和評估方式而有所不同。