変数ライブラリの値セットは、定義された変数の代替値セットを提供し、環境固有の構成 (開発、テスト、prod など)、A/B テスト、同じワークスペース内でのデータ ソースの切り替えなどのシナリオをサポートします。
各値セットは、既定の変数値へのポインターのコレクションとして作成され、必要に応じてオーバーライドできます。 特定のワークスペースに対して一度にアクティブにできる値セットは 1 つだけであり、ユーザーは UI または API を使用してアクティブなセットを簡単に切り替えることができます。
値セットはライブラリ内で一意に名前が付けられ、名前の変更、並べ替え (git または 定義 API による更新によってのみ)、または削除 (再割り当てなしでアクティブなセットが削除されないようにするためのセーフガード付き) が可能です。 システムは変更を追跡し、パフォーマンスを確保するためにサイズ制限を適用し、値セットへの変更は保存前に検証されます。 この構造により、堅牢な構成管理が可能になり、開発者はデプロイを自動化し、複数の環境とステージで一貫性を維持できます。
バリュー セットの構造と実装
変数ライブラリ項目の定義は、複数の値セットをサポートするように構成されています。 項目のスキーマ (JSON 定義) では、すべての変数とその既定値がプライマリ セクション (Git では "既定値" ファイルと呼ばれます) に一覧表示されます。 追加の各値セットは、既定値とは異なる変数のみを含む個別のエンティティ (またはファイル) として格納されます。 つまり、特定の値セット内の変数の値が既定値と同じ場合、その値セットの定義では明示的に繰り返されません。
既定値の設定: 常に存在し、すべての変数のベースライン値 (名前や型などのメタデータと共に) が含まれます。 既定値ファイルは、既定の (プライマリ) 値を持つすべての変数を列挙します。
代替値セット: 各追加値セット (たとえば、"Test" または "Prod" の値セット) に対して、値が既定値をオーバーライドする変数のみが一覧表示されます。 変数が特定の値セット ファイルにリストされていない場合、そのセットの既定値が暗黙的に使用されます。
例: 既定値が "dev-server" の変数 ConnectionString があり、これを "prod-server" にオーバーライドする "Production" 値セットを作成した場合、既定の定義には ConnectionString = "dev-server"、"Production" 値セットのファイルには ConnectionString = "prod-server" が含まれます (変更されていない変数の場合は何も含めなくなります)。 この方法では、値セットの定義が細く保たれ、違いのみが強調表示されます。
ソース管理の表現
Fabric の Git 統合では、上記のスキーマは変数ライブラリのフォルダーの下にある複数のファイルに変換されます。 設計上、各値セットは、既定値ファイルとは別に、そのオーバーライドを含む独自の JSON ファイル (値セットに名前が付けられています) にシリアル化されます。 たとえば、VL 項目 "MyVars" には次が含まれます。
MyVars_Default.json – すべての変数の既定値。 MyVars_Prod.json – "Prod" ステージで値が異なる変数のみ。 MyVars_Test.json – "Test" ステージで値が異なる変数のみ。
この明確な分離は、ソース管理で各環境の構成に対する変更を個別に追跡できることを意味します。
重要なのは、アクティブな値セットの選択はこれらの定義ファイルの一部ではなく、アイテムの状態 (ワークスペース レベルの設定) として格納されるため、アイテムを展開またはインポートしても、特定のワークスペースで現在アクティブになっている値セットは上書きされません。 (アクティブな値セットの詳細については、以下を参照してください)。
スキーマとデータ型
値セットでは、新しいデータ型は導入されません。各 変数で定義されているのと同じ型の値を保持します。 項目定義は、各変数の名前、型、既定値、および省略可能なメモを記録します。 Item 参照のような複雑な変数型には構造化スキーマ (ID を格納) がありますが、それらの値は、一貫性のある JSON 構造を使用して各値セットで表されます (たとえば、項目参照には、そのステージの項目のワークスペース ID と項目 ID が格納されます)。 すべての値セット ファイルは、既定値と同じスキーマ構造に従います。基本的には、変数名をそのセットの値にマッピングします (既定値とは異なる値のみを含む)。
値セットの名前付け規則
変数ライブラリ内の値セットの名前は、次の規則に従う必要があります。
- 空ではない
- 先頭または末尾にスペースがありません
- 文字またはアンダースコアで始まる
- 文字、数字、アンダースコア、ハイフンを含めることができます
- 長さが 256 文字を超えない
変数の値が定義された後、変数の型を変更しようとすると、同意ダイアログが表示されます。 ダイアログでは、すべての変数値がリセットされ、この変更がコンシューマー項目側で重大な変更になる可能性があることを通知します。
考慮事項と制限事項
代替値セットの制限事項
- 変数ライブラリの代替値セットは、追加した順序で表示されます。 現時点では、UI で並べ替えることはできません。 順序を変更するには、JSON ファイルを直接編集します。
- 各値セットの名前は、変数ライブラリ内で一意である必要があります。
- 変数名は、変数ライブラリ内で一意である必要があります。 異なるアイテム内にある場合は、ワークスペース内に同じ名前の 2 つの変数を含めることができます。
- 変数ライブラリには、常に 1 つのアクティブな値が一度に 1 つしか設定されていません。 アクティブな間は、値セットを削除できません。 削除するには、まず別の値セットをアクティブに構成します。 デプロイ パイプラインのステージごとに異なるアクティブな値を設定できます。