次の方法で共有


Azure Pipelines を使用して App Configuration から設定をエクスポートする

Azure App Configuration Export タスクでは、App Configuration ストアからキー値をエクスポートし、それらを、後続のタスクで使用できる Azure パイプライン変数として設定します。 このタスクは、構成ファイルから App Configuration ストアにキー値をインポートする Azure App Configuration Import タスクを補完するものです。 詳細については、「Azure Pipelines を使用して App Configuration に設定をインポートする」を参照してください。

前提条件

サービス接続を作成する

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

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

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

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

    [新しいサービス接続] ドロップダウン リストからの [Azure Resource Manager] の選択を示すスクリーンショット。

  4. [認証方法] ダイアログで、[ワークロード ID フェデレーション (自動)] を選択して新しいワークロード ID フェデレーションを作成するか、[ワークロード ID フェデレーション (手動)] を選択して既存のワークロード ID フェデレーションを使用します

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

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

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

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

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

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

    サービス プリンシパルの表示名を示すスクリーンショット。

ロールの割り当ての追加

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

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

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

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

    [ロールの割り当ての追加] ボタンを示すスクリーンショット。

  4. [ロール] では、[App Configuration データ閲覧者] を選びます。 このロールを使用すると、タスクで App Configuration ストアから読み取ることができます。

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

    [ロールの割り当ての追加] ダイアログを示すスクリーンショット。

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

  7. ストアに Key Vault 参照が含まれる場合、関連する Key Vault に移動し、前の手順で作成したサービス プリンシパルに Key Vault シークレット ユーザー ロールを割り当てます。 Key Vault メニューから [アクセス ポリシー] を選択し、アクセス許可モデルとして [Azure ロールベースのアクセス制御] が選択されていることを確認します。

ビルドでの使用

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

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

    新しいパイプラインの [アシスタントを表示する] ボタンを示すスクリーンショット。

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

    既存のパイプラインの [編集] ボタンを示すスクリーンショット。

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

    [タスクの追加] ダイアログの検索ボックスに「Azure App Configuration Export」と入力されていることを示すスクリーンショット。

  3. キー値を App Configuration ストアからエクスポートするには、タスクに必要なパラメーターを構成します。 パラメーターの説明については、「パラメーター」セクションと、各パラメーターの横にあるヒントを参照してください。
    • [Azure サブスクリプション] パラメーターを前の手順で作成したサービス接続の名前に設定します。
    • [App Configuration Endpoint] (App Configuration エンドポイント) を App Configuration ストアのエンドポイントに設定します。
    • 残りのパラメーターは既定値のままにします。

      App Configuration タスクのパラメーターを示すスクリーンショット。

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

リリースでの使用

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

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

    [タスク] ドロップダウンで選択したステージを示すスクリーンショット。

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

    ジョブの横にあるプラス ボタンを示すスクリーンショット。

  6. Azure App Configuration Export タスクを検索します。

    [タスクの追加] ダイアログの検索ボックスに「Azure App Configuration Export」と入力されていることを示すスクリーンショット。

  7. キー値を App Configuration ストアからエクスポートするには、タスク内の必要なパラメーターを構成します。 パラメーターの説明については、「パラメーター」セクションと、各パラメーターの横にあるヒントを参照してください。
    • [Azure サブスクリプション] パラメーターを前の手順で作成したサービス接続の名前に設定します。
    • [App Configuration Endpoint] (App Configuration エンドポイント) を App Configuration ストアのエンドポイントに設定します。
    • 残りのパラメーターは既定値のままにします。
  8. リリースを保存してキューに登録します。 リリース ログには、タスクの実行中に発生したすべてのエラーが表示されます。

パラメーター

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

  • Azure サブスクリプション:利用可能な Azure サービス接続を含むドロップダウン。 利用可能な Azure サービス接続の一覧を最新の情報に更新するには、テキストボックスの右側にある [Azure サブスクリプションの更新] ボタンを押します。
  • [App Configuration Endpoint] (App Configuration エンドポイント): 選択したサブスクリプションで利用可能な構成ストア エンドポイントが読み込まれるドロップダウン。 利用可能な構成ストア エンドポイントの一覧を最新の情報に更新するには、テキストボックスの右側にある [Refresh App Configuration Endpoint] (App Configuration エンドポイントの更新) ボタンを押します。
  • 選択モード: 構成ストアから読み取られるキー値を選択する方法を指定します。 [Default] (既定) の選択モードでは、キーおよびラベルのフィルターを使用できます。 [Snapshot] (スナップショット) の選択モードでは、キー値をスナップショットから選択できます。 既定値は Default です。
  • キー フィルター:このフィルターを使用して、Azure App Configuration から要求されるキー値を選択できます。 "*" の値を指定すると、すべてのキー値が選択されます。 詳しくは、「キー値のクエリ」を参照してください。
  • ラベル:App Configuration ストアからキー値を選択するときに使用するラベルを指定します。 ラベルが指定されていない場合は、ラベルのないキー値が取得されます。 次の文字は使用できません: , *.
  • Snapshot Name (スナップショット名): Azure App Configuration でキー値を取得するスナップショットを指定します。
  • キー プレフィックスのトリミング:変数として設定する前に、App Configuration キーからトリミングする必要がある 1 つ以上のプレフィックスを指定します。 複数のプレフィックスを区切るために、改行文字を使用できます。
  • Suppress Warning For Overridden Keys (オーバーライドされたキーの警告を抑制する): 既定値はオフです。 既存のキーがオーバーライドされたときに警告を表示するかどうかを指定します。 このオプションを有効にするのは、App Configuration からダウンロードされたキー値に、パイプライン変数に存在するものと重複するキーがあると予想される場合です。

後続のタスクでキー値を使用する

App Configuration からフェッチされるキー値は、環境変数としてアクセスできるパイプライン変数として設定されます。 環境変数のキーは、プレフィックスをトリミングした後に (指定されている場合)、App Configuration から取得されるキー値のキーです。

たとえば、後続のタスクが PowerShell スクリプトを実行する場合、次のようにキー 'myBuildSetting' を持つキー値を使用できます。

echo "$env:myBuildSetting"

そして、値がコンソールに出力されます。

Note

App Configuration 内の Azure Key Vault 参照が解決され、シークレット変数として設定されます。 Azure Pipelines では、シークレット変数はログからマスクされます。 これらは環境変数としてタスクに渡されないので、代わりに入力として渡す必要があります。

トラブルシューティング

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

よく寄せられる質問

複数のキーとラベルはどのように構成したらよいですか?

複数のラベル (default と dev など) を構成する必要がある場合もあります。 このシナリオを実装するために、1 つのパイプラインで複数の App Configuration タスクを使用できます。 後の手順でタスクによってフェッチされるキー値は、前の手順の値よりも優先されます。 前述の例では、1 つ目のタスクを使用して default のラベルを持つキー値を選択し、2 番目のタスクで dev ラベルを持つキー値を選択できます。 dev ラベルを持つキーによって、default ラベルを持つ同じキーがオーバーライドされます。

次のステップ

パラメーターの完全なリファレンス、または YAML パイプラインにおけるこのパイプライン タスクの使用については、次のドキュメントを参照してください。

構成ファイルから App Configuration ストアにキー値をインポートする方法については、次のドキュメントに進んでください。

App Configuration ストアでスナップショットを作成する方法については、次のドキュメントに進んでください。