

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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>

マルチバリアント機能フラグを少なくとも 1 つ含む機能フラグ設定の取得時刻形式は、JSON データではなく [Amazon Ion](https://amazon-ion.github.io/ion-docs/) データとして表されます。この形式では、マルチバリアントフラグは注釈付きリストとして表され、基本フラグは注釈付き文字列として表されます。マルチバリアントフラグのリスト要素は、単一のバリアントを表すタプル (長さが 2 のリスト) またはデフォルトのバリアントを表す文字列です。バリアントタプル内では、最初の要素はバリアントのルールを表す s 式で、2 番目の要素はバリアントのコンテンツを表す文字列です。

エージェントがこれらのファイルを適切に解釈するには、ローカルの機能フラグファイルは次の拡張子を使用する必要があります: `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 表示を表す複数のフラグ。最初の 2 つのフラグはマルチバリアントで、最後のフラグは基本フラグです。

```
'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"}'''
```