Azure Pipelines を使用して App Configuration に設定をプッシュする

Azure App Configuration Push タスクは、キー値を構成ファイルから App Configuration ストアにプッシュします。 このタスクによって、App Configuration ストアから設定をプルしたり、App Configuration ストアに設定をプッシュしたりできるようになるため、パイプライン内で完全なサークル機能が有効になります。

前提条件

サービス接続を作成する

サービス接続により、Azure DevOps プロジェクトから Azure サブスクリプション内のリソースにアクセスできます。

  1. Azure DevOps で、ターゲット パイプラインを含むプロジェクトに移動します。 左下隅にある [プロジェクトの設定] を選択します。

  2. [パイプライン] で、[サービス接続] を選択します。 右上隅の [新しいサービス接続] を選択します。

  3. [新しいサービス接続] で、 [Azure Resource Manager] を選択します。

    Screenshot shows selecting Azure Resource Manager from the New service connection dropdown list.

  4. [認証方法] ダイアログで、 [サービス プリンシパル (自動)] を選択して新しいサービス プリンシパルを作成するか、 [サービス プリンシパル (手動)] を選択して既存のサービス プリンシパルを使用します。

  5. ご自分のサブスクリプション、リソース グループ、サービス接続の名前を入力します。

新しいサービス プリンシパルを作成した場合、サービス接続に割り当てられているサービス プリンシパルの名前を探します。 次の手順では、このサービス プリンシパルに新しいロールの割り当てを追加します。

  1. [プロジェクトの設定]>[サービス接続] の順に移動します。

  2. 新しいサービス接続を選択します。

  3. [サービス プリンシパルの管理] を選択します。

  4. [表示名] の値をメモします。

    Screenshot shows the service principal display name.

ロールの割り当ての追加

タスクで App Configuration ストアにアクセスできるように、タスク内で使用する資格情報に、適切な App Configuration のロールの割り当てを割り当てます。

  1. ターゲットの App Configuration ストアに移動します。

  2. 左側のメニューで [アクセス制御 (IAM)] を選択します。

  3. 右側のペインで、 [ロールの割り当てを追加する] を選択します。

    Screenshot shows the Add role assignments button.

  4. [ロール] で、 [App Configuration データ所有者] を選択します。 このロールを使用すると、タスクで App Configuration ストアに対して読み取りや書き込みを行うことができます。

  5. 前のセクションで作成したサービス接続に関連付けるサービス プリンシパルを選択します。

    Screenshot shows the Add role assignment dialog.

  6. [レビューと割り当て] を選択します。

ビルドでの使用

このセクションでは、Azure DevOps ビルド パイプラインで Azure App Configuration Push タスクを使用する方法について説明します。

  1. [パイプライン]>[パイプライン] の順にクリックして、ビルド パイプラインのページに移動します。 ビルド パイプラインについては、こちらのドキュメントを参照してください。
    • 新しいビルド パイプラインを作成している場合は、プロセスの最後の手順を行うときに、 [確認] タブでパイプラインの右側にある [アシスタントを表示する] を選択します。

      Screenshot shows the Show assistant button for a new pipeline.

    • 既存のビルド パイプラインを使用している場合は、右上にある [編集] ボタンをクリックします。

      Screenshot shows the Edit button for an existing pipeline.

  2. Azure App Configuration Push タスクを検索します。

    Screenshot shows the Add Task dialog with Azure App Configuration Push in the search box.

  3. キー値を構成ファイルから App Configuration ストアにプッシュするために必要なタスクのパラメーターを構成します。 パラメーターの説明は、以下の「パラメーター」セクション、および各パラメーターの横にあるヒントを参照してください。

    Screenshot shows the app configuration push task parameters.

  4. ビルドを保存してキューに登録します。 ビルド ログには、タスクの実行中に発生したすべてのエラーが表示されます。

リリースでの使用

このセクションでは、Azure DevOps リリース パイプラインで Azure App Configuration Push タスクを使用する方法について説明します。

  1. [パイプライン]>[リリース] の順に選択して、リリース パイプラインのページに移動します。 リリース パイプラインについては、こちらのドキュメントを参照してください。
  2. 既存のリリース パイプラインを選択します。 ない場合は、 [+ 新規] を選択して、新規作成します。
  3. 右上隅にある [編集] ボタンを選択して、リリース パイプラインを編集します。
  4. [タスク] ドロップダウンから、タスクを追加するステージを選択します。 ステージの詳細については、こちらを参照してください。

    Screenshot shows the selected stage in the Tasks dropdown.

  5. 新しいタスクを追加するジョブの横にある + をクリックします。

    Screenshot shows the plus button next to the job.

  6. [タスクの追加] ダイアログで、検索ボックスに「Azure App Configuration Push」と入力して選択します。
  7. キー値を構成ファイルから App Configuration ストアにプッシュするために必要なタスク内のパラメーターを構成します。 パラメーターの説明は、以下の「パラメーター」セクション、および各パラメーターの横にあるヒントを参照してください。
  8. リリースを保存してキューに登録します。 リリース ログに、タスクの実行中に発生したすべてのエラーが表示されます。

パラメーター

App Configuration Push タスクによって、次のパラメーターが使用されます。

  • Azure サブスクリプション:利用可能な Azure サービス接続を含むドロップダウン。 利用可能な Azure サービス接続の一覧を最新の情報に更新するには、テキストボックスの右側にある [Azure サブスクリプションの更新] ボタンを押します。
  • App Configuration エンドポイント: 選択したサブスクリプションで利用可能な Configuration エンドポイントが読み込まれるドロップダウン。 利用可能な構成ストア エンドポイントの一覧を最新の情報に更新するには、テキストボックスの右側にある [App Configuration エンドポイントの更新] ボタンを押します。
  • 構成ファイルのパス: 構成ファイルへのパス。 [構成ファイルのパス] パラメーターは、ファイル リポジトリのルートから始まります。 ビルド成果物を参照して、構成ファイルを選択することができます (テキストボックスの右側にある ... ボタン)。 サポートされているファイル形式は、ファイル コンテンツ プロファイルによって異なります。 既定のプロファイルの場合、サポートされているファイル形式は yaml、json、properties です。 KvSet プロファイルの場合、サポートされているファイル形式は json です。
  • ファイル コンテンツ プロファイル: 構成ファイルの コンテンツ プロファイル。 既定値は Default です。
    • Default: アプリケーションで直接使用できる従来の構成ファイル形式を参照します。
    • Kvset: キー、値、ラベル、コンテンツ タイプ、タグなど、App Configuration キーと値のすべてのプロパティを含むファイル スキーマを参照します。 タスク パラメーター 'Separator'、'Label'、'Content type'、'Prefix'、'Tags'、'Depth' は、Kvset プロファイルを使用する場合には適用されません。
  • インポート モード: 既定値は All です。 キーと値をインポートするときの動作を決定します。
    • All: 構成ファイル内のすべてのキーと値を App Configuration にインポートします。
    • Ignore-Match: App Configuration で一致するキーと値が一致しない設定のみをインポートします。 一致するキーと値は、同じキー、ラベル、値、コンテンツ タイプ、タグを持つキーと値と見なされます。
  • ドライ ラン: 既定値はオフです。
    • オン: App Configuration に対する更新は実行されません。 代わりに、通常の実行で実行された更新プログラムは、確認のためにコンソールに出力されます。
    • オフ: App Configuration の更新を実行し、コンソールに出力しません。
  • 区切り記号: .json および .yml ファイルをフラット化するために使用する区切り記号。
  • 深さ: .json および .yml ファイルをフラット化する深さ。
  • プレフィックス: App Configuration ストアにプッシュされる各キーの先頭に追加される文字列。
  • ラベル:App Configuration ストア内で、各キー値にラベルとして追加される文字列。
  • コンテンツの種類: App Configuration ストア内で、各キー値にコンテンツの種類として追加される文字列。
  • タグ:{"tag1":"val1", "tag2":"val2"} 形式の JSON オブジェクト。これは、App Configuration ストアにプッシュされる各キー値に追加されるタグを定義します。
  • 構成ファイルに含まれていないキーと値を削除する: 既定値はオフです。 このオプションの動作は、構成ファイルのコンテンツ プロファイルによって異なります。
    • オン:
      • 既定のコンテンツ プロファイル: 指定されたプレフィックスとラベルの両方と一致する App Configuration ストア内のすべてのキー値を削除した後、構成ファイルの新しいキー値をプッシュします。
      • Kvset コンテンツ プロファイル: 構成ファイルから新しいキー値をプッシュする前に、構成ファイルに含まれていない App Configuration ストア内のすべてのキーと値を削除します。
    • オフ: すべてのキー値を構成ファイルから App Configuration ストアにプッシュし、App Configuration ストア内の他のすべてのものをそのまま残します。

トラブルシューティング

予期しないエラーが発生した場合、パイプライン変数 system.debugtrueに設置すると、デバッグ ログを有効にすることができます。

よく寄せられる質問

複数の構成ファイルをアップロードするには、どうすればよいですか?

同じパイプライン内で Azure App Configuration Push タスクの複数のインスタンスを作成して、複数の構成ファイルを App Configuration ストアにプッシュします。

このタスクを使用して Key Vault 参照または機能フラグを作成するにはどうすればよいですか?

選択したファイル コンテンツ プロファイルに応じて、「構成ファイルの Azure App Configuration サポート」の例を参照してください。

キー値を Configuration ストアにプッシュしようとすると、409 エラーが発生するのはなぜですか?

409 競合エラー メッセージは、タスクで、App Configuration ストア内のロックされたキー値を削除または上書きしようとしたときに発生します。