

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

# AWS AppConfig 客服人員本機開發模式的功能旗標範例
<a name="appconfig-agent-how-to-use-local-development-samples"></a>

本節包含功能標記範例，您可以在本機開發模式中搭配 AWS AppConfig 代理程式使用。本機開發模式預期具有資料擷取時間格式的功能標記資料。*擷取時間格式*是從 [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) API 擷取旗標時傳回的格式，其中僅包含旗標的值。擷取時間格式不包含旗標的完整定義 （傳遞至 [CreateHostedConfigurationVersion](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html) API)。旗標的完整定義也包含屬性名稱和值、限制條件和旗標的啟用狀態等資訊。

**Topics**
+ [基本功能旗標範例](#appconfig-agent-how-to-use-local-development-samples-basic)
+ [多變體特徵標記範例](#appconfig-agent-how-to-use-local-development-samples-multi-variant)

## 基本功能旗標範例
<a name="appconfig-agent-how-to-use-local-development-samples-basic"></a>

在本機開發模式中搭配 AWS AppConfig 代理程式使用下列基本功能旗標範例。

**注意**  
如果您希望代理程式報告本機特徵標記資料的內容類型為 `application/json`（如同 AWS AppConfig 在非本機開發模式下從 擷取標記資料一樣），您的本機特徵標記檔案必須使用 .json 延伸。例如 `Local:MyFeatureFlags:SampleB1.json`。

**範例 1**：代表 UI 重新整理的單一旗標。

```
{
    "ui_refresh": {
        "enabled": true,
        "new_styleguide_colors": true
    }
}
```

**範例 2**：代表操作功能旗標的多個旗標。

```
{
   "background_worker": {
        "enabled": true,
        "num_threads": 4,
        "queue_name": "MyWorkQueue"
   },
   "emergency_shutoff_switch": {
        "enabled": false
   },
   "logger_settings": {
        "enabled": true,
        "level": "INFO"
   }
}
```

## 多變體特徵標記範例
<a name="appconfig-agent-how-to-use-local-development-samples-multi-variant"></a>

包含至少一個多變體特徵標記之特徵標記組態的擷取時間格式表示為 [Amazon Ion](https://amazon-ion.github.io/ion-docs/) 資料，而非 JSON 資料。在此格式中，多變體旗標表示為註釋清單，而基本旗標表示為註釋字串。多變體旗標的清單元素可以是元組 （長度為 2 的清單），代表單一變體，或代表預設變體的字串。在變體元組內，第一個元素是代表變體規則的 s-expression，第二個元素是代表變體內容的字串。

為了讓代理程式正確解譯這些檔案，您的本機特徵標記檔案必須使用下列副檔名：`application%ion%type=AWS.AppConfig.FeatureFlags`。例如 `Local:MyFeatureFlags:SampleMV1.application%ion%type=AWS.AppConfig.FeatureFlags`。

**範例 1**：代表新功能的分層版本的多變量旗標。

```
'tiered_release'::[
  [
    (or (and (eq $group "Tier1") (split by::$userId pct::1 seed::"2025.01.01")) (and (eq $group "Tier2") (split by::$userId pct::7 seed::"2025.01.01"))),
    '''{"_variant": "ShowFeature", "enabled": true}'''
  ],
  '''{"_variant": "HideFeature", "enabled": false}'''
]
```

**範例 2**：根據使用者的 ID，代表不同 UX 顯示的多個旗標。前兩個旗標是多變量，最後一個旗標是基本的。

```
'colorway'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  [
    (split by::$userId pct::10),
    '''{"_variant": "SplitRollOutRedAndBlue", "enabled": true, "background": "blue", "foreground": "red"}''',
  ],
  '''{"_variant": "default", "enabled": true, "background": "green", "foreground": "green"}''',
]

'simple_feature'::[
  [
    (contains $userId "beta"),
    '''{"_variant": "BetaTesters", "enabled": true}'''
  ],
  '''{"_variant": "default", "enabled": false}'''
]

'button_color'::'''{"enabled": true, "color": "orange"}'''
```