

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

# マルチバリアント機能フラグの作成
<a name="appconfig-creating-multi-variant-feature-flags-procedures"></a>

このセクションの手順を使用して、機能フラグのバリアントを作成します。

**[開始する前に]**  
次の重要な情報に注意してください。
+ 既存の機能フラグを編集してバリアントを作成できます。*新しい設定プロファイルを作成するときに*、新しい機能フラグのバリアントを作成することはできません。まず、新しい設定プロファイルを作成するワークフローを完了する必要があります。設定プロファイルを作成したら、設定プロファイル内の任意のフラグにバリアントを追加できます。新しい設定プロファイルを作成する方法については、「[で機能フラグ設定プロファイルを作成する AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md)」を参照してください。
+ Amazon EC2、Amazon ECS、Amazon EKS コンピューティングプラットフォームの機能フラグバリアントデータを取得するには、 AWS AppConfig エージェントバージョン 2.0.4416 以降を使用する必要があります。
+ パフォーマンス上の理由から、 AWS CLI SDK は を呼び出してバリアントデータを取得 AWS AppConfig しません。 AWS AppConfig エージェントの詳細については、「」を参照してください[AWS AppConfig エージェントを使用して設定データを取得する方法](appconfig-agent-how-to-use.md)。
+ 機能フラグバリアントを作成するときは、そのバリアントのルールを指定します。ルールは、リクエストコンテキストを入力として受け取り、ブール結果を出力として生成する式です。バリアントを作成する前に、フラグバリアントルールでサポートされているオペランドと演算子を確認してください。バリアントを作成する前にルールを作成できます。詳細については、「[マルチバリアント機能フラグルールについて](appconfig-creating-multi-variant-feature-flags-rules.md)」を参照してください。

**Topics**
+ [マルチバリアント機能フラグの作成 (コンソール)](#appconfig-creating-multi-variant-feature-flags-procedures-console)
+ [マルチバリアント機能フラグの作成 (コマンドライン)](#appconfig-creating-multi-variant-feature-flags-procedures-commandline)

## マルチバリアント機能フラグの作成 (コンソール)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-console"></a>

次の手順では、 AWS AppConfig コンソールを使用して既存の設定プロファイルのマルチバリアント機能フラグを作成する方法について説明します。既存の機能フラグを編集してバリアントを作成することもできます。

**マルチバリアント機能フラグを作成するには**

1. [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/) で AWS Systems Manager コンソールを開きます。

1. ナビゲーションペインで、**[アプリケーション]** を選択し、アプリケーションを選択します。

1. **[設定プロファイルと機能フラグ]** タブで、既存の機能フラグ設定プロファイルを選択します。

1. **[フラグ]** セクションで、**[新しいフラグの追加]** を選択します。

1. **[機能フラグ定義]** セクションの **[フラグ名]** に名前を入力します。

1. **[フラグキー]** には、フラグ識別子を入力して、同じ設定プロファイル内のフラグを区別します。同じ設定プロファイル内のフラグに同じキーを設定することはできません。フラグを作成した後、フラグ名は編集できますが、フラグキーは編集できません。

1. (オプション) **[説明]** フィールドに、このフラグに関する情報を入力します。

1. **[バリアント]** セクションで、**[マルチバリアントフラグ]** を選択します。

1. (オプション) **[機能フラグ属性]** セクションで、**[属性を定義]** を選択します。属性を使用すると、フラグ内に追加の値を指定できます。属性と制約の詳細については、「[機能フラグ属性について](appconfig-creating-configuration-and-profile-feature-flags.md#appconfig-creating-configuration-profile-feature-flag-attributes)」を参照してください。

   1. **[キー]** には、フラグキーを指定し、**[タイプ]** リストからそのタイプを選択します。**[値]** および **[制約]** フィールドでサポートされているオプションについては、属性に関する前述のセクションを参照してください。

   1. **必須の値** を選択して、属性値が必須かどうかを指定します。

   1. 属性を追加するには、**[属性を定義]** を選択します。

   1. 属性の変更を保存するには、**[適用]** を選択します。

1. **[機能フラグバリアント]** セクションで、**[バリアントを作成]** を選択します。

   1. **[バリアント名]** に名前を入力します。

   1. **[有効化された値]** トグルを使用してバリアントを有効にします。

   1. **[ルール]** テキストボックスにルールを入力します。

   1. **[バリアントを作成]** > **[上にバリアントを作成]** または **[下にバリアントを作成]** オプションを使用して、このフラグに追加のバリアントを作成します。

   1. **[デフォルトバリアント]** セクションで、**[有効化された値]** トグルを使用してデフォルトバリアントを有効にします。必要に応じて、ステップ 10 で定義された属性の値を指定します。

   1. **[Apply]** (適用) を選択します。

1. フラグとそのバリアントの詳細を確認し、**[フラグを作成]** を選択します。

新規の機能フラグとバリアントをデプロイする方法の詳細については、「[に機能フラグと設定データをデプロイする AWS AppConfig](deploying-feature-flags.md)」を参照してください。

## マルチバリアント機能フラグの作成 (コマンドライン)
<a name="appconfig-creating-multi-variant-feature-flags-procedures-commandline"></a>

次の手順では、 AWS Command Line Interface (Linux または Windows) または Tools for Windows PowerShell を使用して、既存の設定プロファイルのマルチバリアント機能フラグを作成する方法について説明します。既存の機能フラグを編集してバリアントを作成することもできます。

**[開始する前に]**  
 AWS CLIを使用して多変量機能フラグを作成する前に、以下のタスクを完了してください。
+ 機能フラグ設定プロファイルを作成します。詳細については、「[で機能フラグ設定プロファイルを作成する AWS AppConfig](appconfig-creating-configuration-and-profile-feature-flags.md)」を参照してください。
+  AWS CLIを最新バージョンに更新します。詳細については、「*AWS Command Line Interface ユーザーガイド*」の「[AWS CLIの最新バージョンをインストールまたは更新する](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

**マルチバリアント機能フラグを作成するには**

1. 作成するマルチバリアントフラグの詳細を指定する設定ファイルをローカルマシンに作成します。ファイル拡張子 (`.json`) を付けてこのファイルを保存します。ファイルは [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html) JSON スキーマに準拠している必要があります。設定ファイルのスキーマの内容は、次のようになります。

   ```
   {
     "flags": {
       "FLAG_NAME": {
         "attributes": {
             "ATTRIBUTE_NAME": {
             "constraints": {
               "type": "CONSTRAINT_TYPE"
             }
           }
         },
         "description": "FLAG_DESCRIPTION",
         "name": "VARIANT_NAME"
       }
     },
     "values": {
       "VARIANT_VALUE_NAME": {
         "_variants": [
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           },
           {
             "attributeValues": {
               "ATTRIBUTE_NAME": BOOLEAN
             },
             "enabled": BOOLEAN,
             "name": "VARIANT_NAME",
             "rule": "VARIANT_RULE"
           }
         ]
       }
     },
     "version": "VERSION_NUMBER"
   }
   ```

   以下は、3 つのバリアントとデフォルトのバリアントの例です。

   ```
   {
     "flags": {
       "ui_refresh": {
         "attributes": {
           "dark_mode_support": {
             "constraints": {
               "type": "boolean"
             }
           }
         },
         "description": "A release flag used to release a new UI",
         "name": "UI Refresh"
       }
     },
     "values": {
       "ui_refresh": {
         "_variants": [
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "QA",
             "rule": "(ends_with $email \"qa-testers.mycompany.com\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": true
             },
             "enabled": true,
             "name": "Beta Testers",
             "rule": "(exists key::\"opted_in_to_beta\")"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": true,
             "name": "Sample Population",
             "rule": "(split pct::10 by::$email)"
           },
           {
             "attributeValues": {
               "dark_mode_support": false
             },
             "enabled": false,
             "name": "Default Variant"
           }
         ]
       }
     },
     "version": "1"
   }
   ```

1. `CreateHostedConfigurationVersion` API を使用して、機能フラグの設定データを AWS AppConfigに保存します。

------
#### [ Linux ]

   ```
   aws appconfig create-hosted-configuration-version \
     --application-id APPLICATION_ID \
     --configuration-profile-id CONFIGURATION_PROFILE_ID \
     --content-type "application/json" \
     --content file://path/to/feature_flag_configuration_data.json \
     --cli-binary-format raw-in-base64-out \
     outfile
   ```

------
#### [ Windows ]

   ```
   aws appconfig create-hosted-configuration-version ^
     --application-id APPLICATION_ID ^
     --configuration-profile-id CONFIGURATION_PROFILE_ID ^
     --content-type "application/json" ^
     --content file://path/to/feature_flag_configuration_data.json ^
     --cli-binary-format raw-in-base64-out ^
     outfile
   ```

------
#### [ PowerShell ]

   ```
   New-APPCHostedConfigurationVersion `
     -ApplicationId APPLICATION_ID `
     -ConfigurationProfileId CONFIGURATION_PROFILE_ID `
     -ContentType "application/json" `
     -Content file://path/to/feature_flag_configuration_data.json `
     -Raw
   ```

------

   `service_returned_content_file` には、 AWS AppConfig 生成されたメタデータを含む設定データが含まれています。
**注記**  
ホストされた設定バージョンを作成すると、 AWS AppConfig はデータが [https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-type-reference-feature-flags.html) JSON スキーマに準拠していることを確認します。 AWS AppConfig さらに、 は、データ内の各機能フラグ属性が、それらの属性に定義した制約を満たしていることを確認します。