Azure App Configuration では、機能フラグを使用した機能管理が提供され、チームはコードを再デプロイせずにアプリケーションの機能を動的に制御できます。 これにより、安全でターゲットを絞ったロールアウト、迅速な実験、リスクの軽減が可能になり、開発者はアプリの動作を柔軟に制御でき、変化するビジネスや顧客のニーズに迅速に対応できます。
Azure portal の機能マネージャーには、アプリケーションで使用する機能フラグを作成および管理するための UI が用意されています。
前提条件
機能フラグを作成する
次の手順に従って、Azure portal で新しい機能フラグを作成します。
Azure portal で Azure App Configuration ストアを開きます。 リソース メニューの [ 操作] で、[ フィーチャー マネージャー>作成] を選択します。
[ 機能フラグを使用する対象] で、次のいずれかの目的を選択します。
-
スイッチ – 簡単なスイッチで機能のオン/オフを切り替えます。 有効期間の短い操作の切り替えと、単一のオン/オフ制御で十分なシナリオに使用します。
-
ロールアウト – ユーザーの割合に対して機能を段階的に有効にします。 リスクを軽減するために段階的な機能リリースを使用し、環境またはユーザー セグメント間でカナリアロールアウトや段階的なロールアウトを実施します。
-
実験 – トラフィック割り当てを使用して制御された実験を実行して、最適なパフォーマンスのバリアントを決定します。 A/B テスト、多変量実験、またはメトリックドリブンの特徴評価、および統計的比較を必要とするその他のシナリオに使用します。
スイッチを使用して、すべてのユーザーの機能を即座に有効または無効にします。
基本 を構成 して、機能フラグのコア プロパティを設定します。
| 設定 |
値の例 |
説明 |
|
機能フラグを有効にする |
オンに切り替える |
このオプションは、作成時に機能フラグを有効にします。 これをオフにすると、新しい機能フラグの構成は保存されますが、新しい機能フラグは無効のままです。 |
|
機能フラグ名 |
ベータ |
機能フラグ名は、コード内でフラグを参照するために使用します。 アプリケーション内で一意にする必要があります。 |
|
鍵 |
ベータ |
キーを使用して、アプリケーションに読み込まれる機能フラグをフィルター処理できます。 キーは既定で機能フラグ名から生成されますが、プレフィックスまたは名前空間を追加して、機能フラグ ( .appconfig.featureflag/Beta など) をグループ化することもできます。 |
|
Label |
空のままにする |
ラベルを使用して、同じキーに対して異なる機能フラグを作成し、ラベルに基づいてアプリケーションに読み込まれたフラグをフィルター処理できます。 既定では、機能フラグにはラベルが付いていません。 |
|
説明 |
空のままにする |
空白のままにするか、機能フラグの説明を入力してください。 |
この機能フラグの評価イベントを収集するように テレメトリ を構成します。 有効にすると、評価イベントは、アプリケーションで構成したテレメトリ発行元に送信されます。 テレメトリを有効にする前に、Application Insights リソースを Telemetry>App Insights の App Configuration ストアにリンクします。
[ 確認と作成 ] を選択して新しい機能フラグの概要を表示し、[ 作成 ] を選択して操作を完了します。 新しい機能フラグが正常に作成されたことを示す通知が表示されます。
ロールアウトを使用して、機能を一部のユーザーに段階的に公開します。
基本 を構成 して、機能フラグのコア プロパティを設定します。
| 設定 |
値の例 |
説明 |
|
機能フラグを有効にする |
オンに切り替える |
このオプションは、作成時に機能フラグを有効にします。 これをオフにすると、新しい機能フラグの構成は保存されますが、新しい機能フラグは無効のままです。 |
|
機能フラグ名 |
ベータ |
機能フラグ名は、コード内でフラグを参照するために使用します。 アプリケーション内で一意にする必要があります。 |
|
鍵 |
ベータ |
キーを使用して、アプリケーションに読み込まれる機能フラグをフィルター処理できます。 キーは既定では機能フラグ名から生成されますが、たとえば .appconfig.featureflag/myapp/Beta のように、プレフィックスや名前空間を追加して機能フラグをグループ化することもできます。 |
|
Label |
空のままにする |
ラベルを使用して、同じキーに対して異なる機能フラグを作成し、ラベルに基づいてアプリケーションに読み込まれたフラグをフィルター処理できます。 既定では、機能フラグにはラベルが付いていません。 |
|
説明 |
空のままにする |
空白のままにするか、機能フラグの説明を入力してください。 |
[ 対象ユーザー ] タブで、指定した割合の機能フラグをオンにするか、グループとユーザーを明示的に含めるか除外します。
| 設定 |
値の例 |
説明 |
|
既定の割合 |
0–100 |
0 ~ 100 の値を入力して、既定で機能を受け取るユーザーの割合を指定します。 |
|
グループによるオーバーライド |
オフ (未チェック) |
グループベースのオーバーライドを有効にする場合に選択します。 有効にすると、次のことができます。 - ロールアウトに明示的に含めるグループを追加し、機能を受け取るグループ メンバーの割合を設定します。
- ロールアウトから除外するグループを追加します。
|
|
ユーザーによるオーバーライド |
オフ(未チェック) |
ユーザーベースのターゲット設定を有効にする場合に選択します。 有効にすると、含めるユーザーまたは除外する個々のユーザーを指定できます。 |
[ 構成 ] タブで、機能フラグの値を構成します。 アプリケーションでは、各ユーザーに適用される値を評価することで、適切な構成を取得できます。
| 設定 |
値の例 |
説明 |
|
構成を含める |
ボックスがオンになっています |
キーと値の設定を機能フラグに添付する場合は選択してください。 これらの設定により、コードを再デプロイすることなく、アプリケーションで動作を動的に調整できます。 |
|
以前の構成 |
{"color":"blue"} |
この更新プログラムの前に機能フラグに以前に関連付けられた構成値を示します。 これを使用して、変更を比較し、バージョンを追跡します。 |
|
新しい構成 |
{"color":"green"} |
現在適用している更新された構成値を表示します。 これらの値は、古い構成をオーバーライドし、機能フラグが有効な場合の新しい動作を定義します。 |
条件を構成して、変更をスケジュールし、機能を提供するためのカスタム制約を管理します。
| 設定 |
値の例 |
説明 |
|
スケジュールの追加 |
開始: 2025-11-01 終了: 2025-11-15 タイム ゾーン: (UTC-06:00) 中部標準時 (米国およびカナダ) 繰り返し: 無効 |
開始日と終了日を指定して、時間ベースのロールアウトを定義します。 必要に応じて、推奨されるタイム ゾーンを更新し、繰り返しアクティブ化の繰り返しを有効にします。 |
|
カスタム条件を追加する |
User.Subscription == "Premium" |
カスタム属性 (リージョン、デバイスの種類、サブスクリプション レベルなど) に基づいて条件を作成します。 条件を使用すると、機能を受け取るユーザーを正確にターゲットにできます。 |
|
すべての機能フィルターを有効にする必要がある |
オン(選択済み) |
このオプションは、[ カスタム条件の追加] と [ スケジュールの追加] の両方を有効にした後にのみ表示されます。 オンにした場合、有効になっているすべての機能フィルターは、適用する機能 (論理 AND) に対して true と評価される必要があります。 オフにすると、フィルターは個別に評価されます (論理 OR)。 |
この機能フラグの評価イベントを収集するように テレメトリ を構成します。 有効にすると、評価イベントは、アプリケーションで構成したテレメトリ発行元に送信されます。 テレメトリを有効にする前に、Application Insights リソースを Telemetry>App Insights の App Configuration ストアにリンクします。
[ 確認と作成 ] を選択して新しい機能フラグの概要を表示し、[ 作成 ] を選択して操作を完了します。 新しい機能フラグが正常に作成されたことを示す通知が表示されます。
実験を使用して A/B テストを実行し、バリアントを比較します。
基本 を構成 して、機能フラグのコア プロパティを設定します。
| 設定 |
値の例 |
説明 |
|
機能フラグを有効にする |
オンに切り替える |
このオプションは、作成時に機能フラグを有効にします。 これをオフにすると、新しい機能フラグの構成は保存されますが、新しい機能フラグは無効のままです。 |
|
機能フラグ名 |
ベータ |
機能フラグ名は、コード内でフラグを参照するために使用します。 アプリケーション内で一意にする必要があります。 |
|
鍵 |
ベータ |
キーを使用して、アプリケーションに読み込まれる機能フラグをフィルター処理できます。 キーは既定では機能フラグ名から生成されますが、たとえば .appconfig.featureflag/myapp/Beta のように、プレフィックスや名前空間を追加して機能フラグをグループ化することもできます。 |
|
Label |
空のままにする |
ラベルを使用して、同じキーに対して異なる機能フラグを作成し、ラベルに基づいてアプリケーションに読み込まれたフラグをフィルター処理できます。 既定では、機能フラグにはラベルが付いていません。 |
|
説明 |
空のままにする |
空白のままにするか、機能フラグの説明を入力してください。 |
バリアントを構成して、動作を比較し、トラフィックを割り当て、対象となるテストを実行します。
| 設定 |
値の例 |
説明 |
|
バリアント名 |
バリアント 1 |
バリアントごとに一意の名前を入力します。 |
|
価値 |
<your-variant-1-value> |
バリアントに対して返される値。 文字列、数値、ブール値、または JSON オブジェクトを指定できます。 フラグを評価するときにアプリが読み取る複雑な JSON 構成には、 複数行で編集値 を使用します。 |
|
既定のバリアント |
バリアント 1 (既定値) |
安定したフォールバックとベースラインとして 1 つのバリアントを選択します。 このバリアントは、特定の割り当てが適用されない場合、または機能フラグが無効になっている場合に返されます。これは、ターゲット割り当てと制御されたテストに使用されるベースラインでもあります。 |
バリアント間でトラフィックを分散し、特定のグループまたはユーザーにオーバーライドを適用するように 割り当てを 構成します。
| 設定 |
値の例 |
説明 |
|
バリエーション間のトラフィック分散 |
既定値: 100% バリアント 1: 0% バリアント 2: 0% |
各バリアントに割り当てられるトラフィックの割合を指定します。 すべてのバリアントのディストリビューションは、最大 100%を加算する必要があります。 これを使用して、対象ユーザーがさまざまなバリエーションに公開される方法を制御します。 |
|
割り当てオーバーライド |
グループによるオーバーライド/ユーザーによるオーバーライド |
割合ベースの割り当てに関係なく、選択したグループまたは個々のユーザーに特定のバリアントを割り当てます。 グループオーバーライドとユーザーオーバーライドの両方が適用される場合、ユーザー割り当てが優先されます。 |
|
ディストリビューション (シード) |
カスタム シードの使用: 12345 |
既定では、パーセンタイル分布はランダム化されます。 固定シードを指定して、同じシード値を共有する機能フラグ間で確定的 (反復可能) 割り当てを生成します。 |
条件を構成して、公開を制限し、変更をスケジュールし、機能を提供するためのカスタム制約を管理します。
| 設定 |
値の例 |
説明 |
|
露出を制限する |
ボックスがオンになっています |
選択すると、パーセンテージ、グループ、ユーザーによる露出を制御する追加のオプションが表示されます。 オフにすると、これらの制約なしで機能フラグがグローバルに適用されます。 |
|
既定の割合 |
100 |
[露出の制限] がオンになっている場合にのみ表示されます。 既定で機能を受け取るユーザー ベース全体の割合を指定するには、0 ~ 100 の値を入力します。 |
|
グループによるオーバーライド |
含む: MarketingTeam (100%) 除外: TestGroup |
[露出の制限] がオンになっている場合にのみ表示されます。 グループを含めて、既定のパーセンテージを外れた場合でも、それらの機能を有効にします。 グループを除外して、それらの機能を無効にします。 |
|
ユーザーによるオーバーライド |
含める: john@example.com 除外する: jane@example.com |
[露出の制限] がオンになっている場合にのみ表示されます。 ユーザーが既定の割合に該当しない場合でも、その機能を有効にするようにユーザーを含めます。 ユーザーを除外して、その機能を無効にします。 ユーザーの長い一覧では、機能フラグには 10 kb の制限が設定されるため、ユーザーの代わりにグループを使用することをお勧めします。 |
|
スケジュールの追加 |
開始: 2025-11-01 終了: 2025-11-15 タイム ゾーン: (UTC-06:00) 中部標準時 (米国およびカナダ) 繰り返し: 毎週 |
開始時刻と終了時刻を指定して、時間ベースのロールアウトを定義します。 必要に応じて、推奨されるタイム ゾーンを更新し、繰り返しアクティブ化の繰り返しを有効にします (週単位や月単位など)。 |
|
カスタム条件を追加する |
User.Region == "EU" |
カスタム属性 (リージョン、デバイスの種類、サブスクリプション レベルなど) に基づいて条件を作成します。 条件によって正確なターゲット設定が可能になるため、これらの条件に一致するユーザーのみが機能を受け取ります。 |
|
すべての機能フィルターを有効にする必要がある |
オン (選択済み) |
このオプションは、複数の条件を有効にした後にのみ表示されます。 オンの場合、機能フラグを適用するには、すべての有効な機能フィルターが true と評価される必要があります (論理 AND)。 オフにすると、フィルターは個別に評価されます (論理 OR)。 |
この機能フラグの評価イベントを収集するように テレメトリ を構成します。 有効にすると、評価イベントは、アプリケーションで構成したテレメトリ発行元に送信されます。 テレメトリを有効にする前に、Application Insights リソースを Telemetry>App Insights の App Configuration ストアにリンクします。
[ 確認と作成 ] を選択して新しい機能フラグの概要を表示し、[ 作成 ] を選択して操作を完了します。 新しい機能フラグが正常に作成されたことを示す通知が表示されます。
機能フラグの編集
機能フラグを更新するには、次の手順に従います。
リソース メニューで、 Operations>Feature Manager に移動します。
変更する機能フラグの右端に移動し、[ その他のアクション ] 省略記号 (...) を選択します。このメニューから、機能フラグの詳細の表示、フラグの編集、ロックまたはロック解除、ラベルの作成、タグの更新、履歴の確認、フラグの削除を行うことができます。
ビジュアル エディターを使用して変更を加える場合は [編集] を選択し、フラグの生 JSON を直接変更するには [詳細編集] を選択します。
必要に応じて、[ 有効] トグルをオンまたはオフにして、機能フラグの状態を変更します。
ビューの管理
[機能マネージャー] メニューには、Azure App Configuration に格納されている機能フラグが表示されます。
[ビューの管理] を選択すると、Azure portal の機能マネージャーの表示を変更できます。
機能マネージャーで作成された機能フラグは、通常のキー値として保存されます。 これらは、特殊なプレフィックス .appconfig.featureflag/ とコンテンツ タイプ application/vnd.microsoft.appconfig.ff+json;charset=utf-8 で保持されます。
構成エクスプローラーで機能フラグの基盤となるキー値を表示するには、以下の手順に従います。
リソース メニューで、 Operations>Configuration エクスプローラーを選択し、[ ビューの管理>設定] を選択します。
構成エクスプローラーで [機能フラグを含める] を選択し、[適用] を選択します。
関連コンテンツ
Azure App Configuration で機能フラグの使用を開始するには、次に示すアプリケーションの言語またはプラットフォームに固有のクイック スタートに進んでください。