CI/CD パイプラインとの統合

この記事では、継続的インテグレーションと継続的デプロイ システムで Azure App Configuration からのデータを使用する方法について説明します。

Azure DevOps パイプラインで App Configuration を使用する

Azure DevOps パイプラインがある場合は、App Configuration からキー値をフェッチしてタスク変数として設定することができます。 Azure App Configuration DevOps 拡張機能は、この機能を提供するアドオン モジュールです。 ビルドまたはリリース タスク シーケンスでこの拡張機能を使用するには、その指示に従ってください。

App Configuration データをアプリケーションと共にデプロイする

アプリケーションは、Azure App Configuration に依存していてそれに到達できない場合、実行に失敗する可能性があります。 アプリケーションと一緒にデプロイされてその起動時にローカルから読み込まれるファイルに構成データをパッケージ化すれば、アプリケーションの回復性を強化することができます。 この方法により、アプリケーションの起動時に、既定値が確実に設定されます。 これらの値は、App Configuration ストアが使用できる状態になったときに、新しい変更によって上書きされます。

Azure App Configuration のエクスポート機能を使用して、現在の構成データを 1 つのファイルとして取得するプロセスを自動化できます。 次に、継続的インテグレーションと継続的配信 (CI/CD) パイプラインのビルドまたはデプロイ手順にこのファイルを組み込むことができます。

クイック スタートで紹介した Web アプリのビルド手順として App Configuration データを含める方法の例を次に示します。 先に進む前に、App Configuration を使用した ASP.NET Core アプリの作成を完了しておいてください。

このチュートリアルの手順は、任意のコード エディターを使用して実行できます。 推奨のエディターは Visual Studio Code です (Windows、macOS、および Linux プラットフォームで使用できます)。

前提条件

ローカルでビルドする場合、Azure CLI をまだインストールしていない場合は、ダウンロードしてインストールします。

App Configuration ストアをエクスポートする

  1. .csproj ファイルを開き、次のスクリプトを追加します。

    <Target Name="Export file" AfterTargets="Build">
        <Message Text="Export the configurations to a temp file. " />
        <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Condition="$(ConnectionString) != ''" Command="az appconfig kv export -d file --path $(OutDir)\azureappconfig.json --format json --separator : --connection-string $(ConnectionString)" />
    </Target>
    
  2. Program.cs を開き、config.AddJsonFile() メソッドを呼び出して、エクスポートされた JSON ファイルを使用するように CreateWebHostBuilder メソッドを更新します。 System.Reflection 名前空間も追加してください。

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var directory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var settings = config.Build();
    
                config.AddJsonFile(Path.Combine(directory, "azureappconfig.json"));
                config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]);
            })
            .UseStartup<Startup>();
    

アプリをビルドしてローカルで実行する

  1. ConnectionString という名前の環境変数に、App Configuration ストアへのアクセス キーを設定します。

    Windows コマンド プロンプトを使用してアプリをローカルでビルドして実行するには、次のコマンドを実行し、変更が反映されるようにコマンド プロンプトを再起動します。

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    
  2. .NET CLI を使用してアプリケーションをビルドするには、コマンド シェルで次のコマンドを実行します。

     dotnet build
    
  3. ビルドが正常に完了したら、次のコマンドを実行して、Web アプリをローカルで実行します。

     dotnet run
    
  4. ブラウザー ウィンドウを開いて、http://localhost:5000 (ローカルでホストされた Web アプリの既定の URL) に移動します。

    Screenshot that shows Quickstart app launch local page.

次のステップ

このチュートリアルでは、Azure App Configuration データをデプロイ パイプラインで使用するためにエクスポートしました。 App Configuration の使用方法の詳細については、Azure CLI のサンプルに進んでください。