次の方法で共有


クイック スタート: Azure App Configuration を使用してアスパイア ソリューションを作成する

このクイック スタートでは、Azure App Configuration を使用して、アスパイア プロジェクトのアプリ設定のストレージと管理を外部化します。 Azure App Configuration Aspire 統合ライブラリを使用して、App Configuration リソースをプロビジョニングし、各分散アプリで App Configuration を使用します。

[前提条件]

アプリをローカルでテストする

アスパイア スターター テンプレートには、最小限の API プロジェクトと通信するフロントエンド Web アプリが含まれています。 API プロジェクトは、フロントエンドに偽の気象データを提供するために使用されます。 フロントエンド アプリは、サービス検出を使用して API プロジェクトに接続するように構成されています。 また、アスパイア ソリューション内のすべての分散アプリケーションを調整する AppHost プロジェクトもあります。

  1. AppHost プロジェクトを実行します。 ブラウザーに [アスパイア] ダッシュボードが表示されます。

    Web フロントエンドと API サービス リソースを含む[アスパイア] ダッシュボードのスクリーンショット。

  2. Web フロントエンドの URL をクリックします。 ウェルカム メッセージが表示されたページが表示されます。

    ウェルカム メッセージが表示された Web アプリのスクリーンショット。

Azure App Configuration をアスパイア ソリューションに追加する

  1. AppHost プロジェクトのディレクトリに移動します。 次のコマンドを実行して、 Aspire.Hosting.Azure.AppConfiguration Nuget パッケージを追加します。

    dotnet add package Aspire.Hosting.Azure.AppConfiguration
    
  2. AppHost.csproj ファイルを開いてパッケージを確認します。 参照されている Aspire.Hosting.AppHost という名前のパッケージが表示されます。 Aspire.Hosting.AppHost パッケージのバージョンが、インストールされたAspire.Hosting.Azure.AppConfigurationのバージョン以上であることを確認します。

  3. AppHost.cs ファイルを開き、次のコードを追加します。

    var builder = DistributedApplication.CreateBuilder(args);
    
    // Add an Azure App Configuration resource
    var appConfiguration = builder.AddAzureAppConfiguration("appconfiguration");
    

    Important

    AddAzureAppConfigurationを呼び出すときは、アプリの起動時に Azure リソースを動的に生成するようにアプリに指示します。 アプリは、適切なサブスクリプションと場所を構成する必要があります。 詳細については、「 ローカル Azure プロビジョニング」を参照してください。 最新のアスパイア SDK を使用している場合は、アスパイア ダッシュボードを使用してサブスクリプション情報を構成できます。 Azure サブスクリプション情報を求める[アスパイア] ダッシュボードのスクリーンショット。

    Azure サブスクリプションに所有者 または ユーザー アクセス管理者 ロールが割り当てられている必要があります。 これらのロールは、プロビジョニング プロセスの一環としてロールの割り当てを作成するために必要です。

    ヒント

    RunAsExisting()で呼び出しbuilder.AddAzureAppConfiguration("appconfig")をチェーンすることで、既存の App Configuration リソースを参照できます。 詳細については、「 既存の Azure リソースを使用する」を参照してください。

  4. App Configuration リソースの参照を追加し、それを待機するように webfrontend プロジェクトを構成します。

    builder.AddProject<Projects.AspireApp_Web>("webfrontend")
        .WithExternalHttpEndpoints()
        .WithHttpHealthCheck("/health")
        .WithReference(apiService)
        .WaitFor(apiService)
        .WithReference(appConfiguration) // reference the App Configuration resource
        .WaitFor(appConfiguration); // wait for the App Configuration resource to enter the Running state before starting the resource
    
  5. AppHost プロジェクトを実行します。 Azure App Configuration リソースがプロビジョニング中であることがわかります。

    Azure App Configuration リソースをプロビジョニングするアスパイア ダッシュボードのスクリーンショット。

  6. 数分待つと、Azure App Configuration リソースがプロビジョニングされ、実行されていることがわかります。

    Azure App Configuration リソースが実行されているアスパイア ダッシュボードのスクリーンショット。

  7. Azure portal に移動するには、アスパイア ダッシュボードのデプロイ URL をクリックします。 デプロイが完了し、Azure App Configuration リソースに移動できます。

    App Configuration のデプロイが完了したことを示す Azure portal のスクリーンショット。

キーと値を追加する

App Configuration ストアに次のキー値を追加し、 ラベルコンテンツ タイプ を既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。

Key 価値
TestApp:Settings:Message こんにちは、Azure App Configuration から!

Azure App Configuration をアスパイア ソリューションに追加する

  1. AppHost プロジェクトのディレクトリに移動します。 次のコマンドを実行して、 Aspire.Hosting.Azure.AppConfiguration Nuget パッケージを追加します。

    dotnet add package Aspire.Hosting.Azure.AppConfiguration
    
  2. AppHost.csproj を開きます。 Aspire.Hosting.AppHost パッケージのバージョンが、インストールしたバージョンより前ではないことを確認します。 それ以外の場合は、 Aspire.Hosting.AppHost パッケージをアップグレードする必要があります。

  3. AppHost.cs ファイルを開き、次のコードを追加します。

    var builder = DistributedApplication.CreateBuilder(args);
    
    // Add an Azure App Configuration resource
    var appConfiguration = builder.AddAzureAppConfiguration("appconfiguration")
        .RunAsEmulator(emulator => { // use the App Configuration emulator
            emulator.WithDataBindMount();
        });
    

    Important

    RunAsEmulatorを呼び出すと、App Configuration エミュレーター イメージがプルされ、App Configuration リソースとしてコンテナーが実行されます。 コンピューターに OCI 準拠のコンテナー ランタイムがあることを確認します。 詳細については、「 アスパイア コンテナー ランタイム」を参照してください。

    ヒント

    WithDataBindMountまたはWithDataVolumeを呼び出して、永続的なコンテナー ストレージ用にエミュレーター リソースを構成し、毎回キー値を再作成する必要がないようにすることができます。

  4. App Configuration リソースの参照を追加し、それを待機するように webfrontend プロジェクトを構成します。

    builder.AddProject<Projects.AspireApp_Web>("webfrontend")
        .WithExternalHttpEndpoints()
        .WithHttpHealthCheck("/health")
        .WithReference(apiService)
        .WaitFor(apiService)
        .WithReference(appConfiguration) // reference the App Configuration resource
        .WaitFor(appConfiguration); // wait for the App Configuration resource to enter the Running state before starting the resource
    
  5. コンテナー ランタイムを開始します。 このチュートリアルでは、Docker Desktop を使用します。

  6. AppHost プロジェクトを実行します。 [アスパイア] ダッシュボードに移動します。 App Configuration エミュレーター リソースが実行されていることがわかります。

    App Configuration エミュレーター リソースを示す [アスパイア] ダッシュボードのスクリーンショット。

    App Configuration エミュレーターの実行を開始するコンテナー。

    コンテナーを実行している Docker デスクトップのスクリーンショット。

キーと値を追加する

  1. appconfiguration リソースの URL をクリックします。 App Configuration エミュレーター UI が表示されます。

  2. 右上隅にある [ Create ] ボタンをクリックします。

    App Configuration エミュレーター UI のスクリーンショット。

  3. 次のキー値を追加します。

    Key 価値
    TestApp:Settings:Message こんにちは、Azure App Configuration から!
  4. Save ボタンをクリックします。

    新しいキー値を作成する App Configuration エミュレーター UI のスクリーンショット。

Web アプリケーションで App Configuration を使用する

  1. Web プロジェクトのディレクトリに移動します。 次のコマンドを実行して、 Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration Nuget パッケージを追加します。

    dotnet add package Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration
    
  2. Program.cs ファイルを開き、次のコードを追加します。

    var builder = WebApplication.CreateBuilder(args);
    
    // Use Azure App Configuration
    builder.AddAzureAppConfiguration("appconfiguration"); // use the resource name defined in the AppHost project
    
  3. Components/Pages/Home.razor ファイルを開き、次のコードで更新します。

    @page "/"
    
    @inject IConfiguration Configuration
    
    <PageTitle>Home</PageTitle>
    
    <h1>Hello, world!</h1>
    
    @if (!string.IsNullOrWhiteSpace(message))
    {
        <div class="alert alert-info">@message</div>
    }
    else
    {
        <div class="alert alert-info">Welcome to your new app.</div>
    }
    
    @code {
        private string? message;
    
        protected override void OnInitialized()
        {
            string msg = Configuration["TestApp:Settings:Message"];
            message = string.IsNullOrWhiteSpace(msg) ? null : msg;
        }
    }
    
  4. プロジェクトをAppHost。 [アスパイア] ダッシュボードに移動し、Web フロントエンドの URL をクリックします。

    リソースを示す [アスパイア] ダッシュボードのスクリーンショット。

  5. Azure App Configuration からのウェルカム メッセージが表示されたページが表示されます。

    Azure App Configuration からのウェルカム メッセージを含む Web アプリのスクリーンショット。

次のステップ

このクイック スタートでは次の作業を行います。

  • アスパイア ソリューションに Azure App Configuration リソースを追加しました。
  • App Configuration Aspire 統合ライブラリを使用して、Azure App Configuration からキー値を読み取ります。
  • App Configuration で構成した設定を使用して Web ページを表示しました。

構成設定を動的に更新するようにアスパイア アプリを構成する方法については、次のチュートリアルに進んでください。

アスパイア アプリで機能フラグを使用する方法については、次のチュートリアルに進んでください。

Azure App Configuration エミュレーターの詳細については、次のドキュメントに進んでください。