Azure Pipelines を使用して App Configuration に設定をインポートする
Azure App Configuration Import タスクでは、構成ファイルから App Configuration ストアにキー値をインポートします。 このタスクによって、App Configuration ストアから設定をエクスポートしたり、App Configuration ストアに設定をインポートしたりできるようになるため、パイプライン内でフル サークル機能を実現できます。
前提条件
- Azure サブスクリプション - 無料アカウントを作成する
- App Configuration ストア - 無料で作成できます
- Azure DevOps プロジェクト - 無料プロジェクトを作成する
- Azure Pipelines エージェント バージョン 2.144.0 以降、セルフホステッド エージェントでタスクを実行する場合は Node バージョン 16 以降。
サービス接続を作成する
サービス接続により、Azure DevOps プロジェクトから Azure サブスクリプション内のリソースにアクセスできます。
Azure DevOps で、ターゲット パイプラインを含むプロジェクトに移動します。 左下隅にある [プロジェクトの設定] を選択します。
[パイプライン] で、[サービス接続] を選択します。 右上隅の [新しいサービス接続] を選択します。
[新しいサービス接続] で、 [Azure Resource Manager] を選択します。
[認証方法] ダイアログで、[ワークロード ID フェデレーション (自動)] を選択して新しいワークロード ID フェデレーションを作成するか、[ワークロード ID フェデレーション (手動)] を選択して既存のワークロード ID フェデレーションを使用します。
ご自分のサブスクリプション、リソース グループ、サービス接続の名前を入力します。
新しいサービス プリンシパルを作成した場合、サービス接続に割り当てられているサービス プリンシパルの名前を探します。 次の手順では、このサービス プリンシパルに新しいロールの割り当てを追加します。
[プロジェクトの設定]>[サービス接続] の順に移動します。
新しいサービス接続を選択します。
[サービス プリンシパルの管理] を選択します。
[表示名] の値をメモします。
ロールの割り当ての追加
タスクで App Configuration ストアにアクセスできるように、タスク内で使用する資格情報に、適切な App Configuration のロールの割り当てを割り当てます。
ターゲットの App Configuration ストアに移動します。
左側のメニューで [アクセス制御 (IAM)] を選択します。
右側のペインで、 [ロールの割り当てを追加する] を選択します。
[ロール] で、 [App Configuration データ所有者] を選択します。 このロールを使用すると、タスクで App Configuration ストアに対して読み取りや書き込みを行うことができます。
前のセクションで作成したサービス接続に関連付けるサービス プリンシパルを選択します。
[レビューと割り当て] を選択します。
ビルドでの使用
このセクションでは、Azure DevOps ビルド パイプラインで Azure App Configuration Import タスクを使用する方法について説明します。
- [パイプライン]>[パイプライン] の順にクリックして、ビルド パイプラインのページに移動します。 ビルド パイプラインの詳細については、「最初のパイプラインの作成」を参照してください。
- 新しいビルド パイプラインを作成している場合は、プロセスの最後の手順を行うときに、 [確認] タブでパイプラインの右側にある [アシスタントを表示する] を選択します。
- 既存のビルド パイプラインを使用している場合は、右上にある [編集] ボタンをクリックします。
- 新しいビルド パイプラインを作成している場合は、プロセスの最後の手順を行うときに、 [確認] タブでパイプラインの右側にある [アシスタントを表示する] を選択します。
- Azure App Configuration Import タスクを検索します。
- 構成ファイルから App Configuration ストアにキー値をインポートするタスクに必要なパラメーターを構成します。 パラメーターの説明については、「パラメーター」セクションと、各パラメーターの横にあるヒントを参照してください。
- ビルドを保存してキューに登録します。 ビルド ログには、タスクの実行中に発生したすべてのエラーが表示されます。
リリースでの使用
このセクションでは、Azure DevOps リリース パイプラインで Azure App Configuration Import タスクを使用する方法について説明します。
- [パイプライン]>[リリース] の順に選択して、リリース パイプラインのページに移動します。 リリース パイプラインの詳細については、「最初のリリース パイプラインの作成」を参照してください。
- 既存のリリース パイプラインを選択します。 ない場合は、 [+ 新規] を選択して、新規作成します。
- 右上隅にある [編集] ボタンを選択して、リリース パイプラインを編集します。
- [タスク] ドロップダウンから、タスクを追加するステージを選択します。 ステージの詳細については、「ステージ、依存関係、条件の追加」を参照してください。
- 新しいタスクを追加するジョブの横にある + をクリックします。
- [タスクの追加] ダイアログで、検索ボックスに「Azure App Configuration Import」と入力し、それを選択します。
- 構成ファイルから App Configuration ストアにキー値をインポートするタスク内の必要なパラメーターを構成します。 パラメーターの説明については、「パラメーター」セクションと、各パラメーターの横にあるヒントを参照してください。
- リリースを保存してキューに登録します。 リリース ログには、タスクの実行中に発生したすべてのエラーが表示されます。
パラメーター
App Configuration Import タスクによって、次のパラメーターが使用されます。
- Azure サブスクリプション:利用可能な Azure サービス接続を含むドロップダウン。 利用可能な Azure サービス接続の一覧を最新の情報に更新するには、テキストボックスの右側にある [Azure サブスクリプションの更新] ボタンを押します。
- App Configuration エンドポイント: 選択したサブスクリプションで利用可能な Configuration エンドポイントが読み込まれるドロップダウン。 利用可能な構成ストア エンドポイントの一覧を最新の情報に更新するには、テキストボックスの右側にある [App Configuration エンドポイントの更新] ボタンを押します。
- 構成ファイルのパス: 構成ファイルへのパス。 [構成ファイルのパス] パラメーターは、ファイル リポジトリのルートから始まります。 ビルド成果物を参照して、構成ファイルを選択することができます (テキストボックスの右側にある
...
ボタン)。 サポートされているファイル形式は、ファイル コンテンツ プロファイルによって異なります。 既定のプロファイルの場合、サポートされているファイル形式は yaml、json、properties です。 KvSet プロファイルの場合、サポートされているファイル形式は json です。 - ファイル コンテンツ プロファイル: 構成ファイルの コンテンツ プロファイル。 既定値は Default です。
- Default: アプリケーションで直接使用できる従来の構成ファイル形式を参照します。
- Kvset: キー、値、ラベル、コンテンツ タイプ、タグなど、App Configuration キーと値のすべてのプロパティを含むファイル スキーマを参照します。 タスク パラメーター [区切り記号]、[ラベル]、[コンテンツの種類]、[プレフィックス]、[タグ]、[深さ] は、Kvset プロファイルを使用する場合には適用されません。
- インポート モード: 既定値は All です。 キーと値をインポートするときの動作を決定します。
- All: 構成ファイル内のすべてのキーと値を App Configuration にインポートします。
- Ignore-Match: App Configuration で一致するキーと値が一致しない設定のみをインポートします。 一致するキー値は、同じキー、ラベル、値、コンテンツの種類、タグを持つキー値と見なされます。
- ドライ ラン: 既定値はオフです。
- オン: App Configuration の更新は実行されません。 その代わりに、通常の実行で行われた更新は、確認のためにコンソールに出力されます。
- オフ: App Configuration の更新を実行し、コンソールに出力しません。
- 区切り記号: .json および .yml ファイルをフラット化するために使用する区切り記号。
- 深さ: .json および .yml ファイルをフラット化する深さ。
- プレフィックス: App Configuration ストアにインポートされる各キーの先頭に追加される文字列。
- ラベル: App Configuration ストア内で、各キー値にラベルとして追加される文字列。
- コンテンツの種類: App Configuration ストア内で、各キー値にコンテンツの種類として追加される文字列。
- タグ: App Configuration ストアにインポートされる各キー値に追加されるタグを定義する、
{"tag1":"val1", "tag2":"val2"}
という形式の JSON オブジェクト。 - 構成ファイルに含まれていないキーと値を削除する: 既定値はオフです。 このオプションの動作は、構成ファイルのコンテンツ プロファイルによって異なります。
- オン:
- 既定のコンテンツ プロファイル: 構成ファイルから新しいキー値をインポートする前に、指定されたプレフィックスとラベルの両方と一致する App Configuration ストア内のすべてのキー値を削除します。
- Kvset コンテンツ プロファイル: 構成ファイルから新しいキー値をインポートする前に、構成ファイルに含まれていない App Configuration ストア内のすべてのキー値を削除します。
- オフ: 構成ファイルから App Configuration ストアにすべてのキー値をインポートし、App Configuration ストア内の他のすべてのものをそのまま残します。
- オン:
トラブルシューティング
予期しないエラーが発生した場合、パイプライン変数 system.debug
を true
に設置すると、デバッグ ログを有効にすることができます。
よく寄せられる質問
複数の構成ファイルをアップロードするには、どうすればよいですか?
複数の構成ファイルを App Configuration ストアにインポートするには、同じパイプライン内で Azure App Configuration Import タスクの複数のインスタンスを作成します。
このタスクを使用して Key Vault 参照または機能フラグを作成するにはどうすればよいですか?
選択したファイル コンテンツ プロファイルに応じて、「構成ファイルの Azure App Configuration サポート」の例を参照してください。
キー値を Configuration ストアにインポートしようとすると、409 エラーが発生するのはなぜですか?
409 競合エラー メッセージは、タスクで、App Configuration ストア内のロックされたキー値を削除または上書きしようとすると発生します。
次のステップ
パラメーターの完全なリファレンス、または YAML パイプラインにおけるこのパイプライン タスクの使用については、次のドキュメントを参照してください。
App Configuration ストアからキー値をエクスポートし、Azure パイプライン変数として設定する方法については、次のドキュメントに進んでください。
App Configuration ストアでスナップショットを作成する方法については、次のドキュメントに進んでください。