.NET Aspire に Azure Container Apps プロジェクトを配置する
.NET
.NET Aspire プロジェクトは、コンテナー化された環境で実行するように設計されています。
Azure Container Apps は、サーバーレス プラットフォームでマイクロサービスとコンテナー化されたアプリケーションを実行できるフル マネージド環境です。 この記事では、新しい .NET Aspire ソリューションを作成し、Azure Container Apps (Azure Developer CLI) を使用して Microsoft azd
に展開する手順について説明します。 次のタスクを完了する方法について説明します。
- Azure リソース グループと Container Registry をプロビジョニングする
- .NET Aspire プロジェクトをコンテナー イメージとして Azure Container Registry に発行する
- Redis で Azure コンテナーをプロビジョニングする
- Azure Container Apps 環境にアプリをデプロイする
- アプリケーション コンソールのログを表示してアプリケーションの問題をトラブルシューティングする
前提 条件
.NET .NET Aspireを使用するには、次のものがローカルにインストールされている必要があります。
- .NET 8.0 または .NET 9.0
- OCI 準拠のコンテナー ランタイム。次に例を示します。
-
Docker デスクトップ またはPodman。 詳細については、「
コンテナー ランタイム」を参照してください。
-
Docker デスクトップ またはPodman。 詳細については、「
- 次のような統合開発者環境 (IDE) またはコード エディター。
- Visual Studio 2022 バージョン 17.9 以降 (省略可能)
-
Visual Studio Code (省略可能)
- C# Dev Kit: 拡張機能 (省略可能)
- JetBrains Rider と .NET.NET Aspire プラグイン (省略可能)
詳細については、
このチュートリアルの代わりに、より詳細なガイドが必要な場合は、「.NET Aspire プロジェクトを Azure Container Apps で azd
を使用してデプロイする (詳細ガイド)」を参照してください。
.NET
.NET Aspire プロジェクトを azd
でデプロイする
.NET Aspire と Azure Container Apps (ACA) では、.NETを使用してクラウドネイティブ アプリを構築するための優れたホスティング シナリオがあります。
Azure Developer CLI の開発とデプロイを azd
で摩擦のないエクスペリエンスにするために、.NET Aspire (Azure) に固有の素晴らしい新機能をいくつか組み込みました。 デプロイをきめ細かく制御する必要がある場合は、Azure CLI や Bicep オプションを引き続き使用できます。 ただし、新しいプロジェクトでは、クラウドにデプロイされた新しいマイクロサービス トポロジを取得するための成功への簡単なパスは見つかりません。
.NET .NET Aspire プロジェクトを作成する
最初に、この記事では、.NET テンプレートから .NET Aspire プロジェクトを作成していることを前提としています。 詳細については、「クイック スタート: 最初の .NET.NET Aspire プロジェクトをビルドする」を参照してください。
リソースの名前付け
新しい Azure リソースを作成するときは、名前付けの要件に従う必要があります。 Azure Container Appsの場合、名前の長さは 2 ~ 32 文字で、小文字、数字、ハイフンで構成されている必要があります。 名前は文字で始まり、英数字で終わる必要があります。
詳細については、
Azure Developer CLI をインストールする
azd
をインストールするプロセスは、オペレーティングシステムによって異なりますが、winget
、brew
、apt
、または直接 curl
経由で広く利用できます。
テンプレートを初期化する
新しいターミナル ウィンドウを開き、
cd
ソリューションの .NET プロジェクト ディレクトリに .NET Aspire します。azd init
コマンドを実行して、azd
を使用してプロジェクトを初期化します。このコマンドにより、ローカル ディレクトリ構造が検査され、アプリの種類が決定されます。azd init
コマンドの詳細については、azd init 参照してください。 azd
のコードを使用して選択します。? How do you want to initialize your app? [Use arrows to move, type to filter] > Use code in the current directory Select a template
ディレクトリのスキャンが完了すると、
azd
が正しく .NET.NET AspireAppHost プロジェクトを見つけたかどうか確認するよう促します。 [確認] を選択し、アプリ の初期化を続行します。Detected services: .NET (Aspire) Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj azd will generate the files necessary to host your app on Azure using Azure Container Apps. ? Select an option [Use arrows to move, type to filter] > Confirm and continue initializing my app Cancel and exit
環境名を入力します。これは、Azure でプロビジョニングされたリソースに名前を付け、
dev
やprod
などのさまざまな環境を管理するために使用します。Generating files to run your app on Azure: (✓) Done: Generating ./azure.yaml (✓) Done: Generating ./next-steps.md SUCCESS: Your app is ready for the cloud! You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
azd
は、多数のファイルを生成し、作業ディレクトリに配置します。 これらのファイルは次のとおりです。
- azure.yaml: AppHost プロジェクトなどのアプリのサービス .NET Aspire について説明し、それらを Azure リソースにマップします。
-
./config.azure。json:
azd
に現在のアクティブな環境を通知する構成ファイル。 - .azure/aspireazddev/.env: 環境固有のオーバーライドが含まれています。
テンプレートをデプロイする
azd
テンプレートが初期化されると、AppHost プロジェクトディレクトリから、プロビジョニングおよびデプロイのプロセスを1つのコマンドとして実行することができ、azd upを使用します。azd up
使用可能なオプションの一覧から、デプロイするサブスクリプションを選択します。
Select an Azure Subscription to use: [Use arrows to move, type to filter] 1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx) 2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
使用可能なオプションの一覧から、使用する Azure の場所を選択します。
Select an Azure location to use: [Use arrows to move, type to filter] 42. (US) Central US (centralus) 43. (US) East US (eastus) > 44. (US) East US 2 (eastus2) 46. (US) North Central US (northcentralus) 47. (US) South Central US (southcentralus)
選択した後、azd
はプロビジョニングとデプロイのプロセスを実行します。
By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use: 1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>
Packaging services (azd package)
Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.
Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>
You can view detailed progress in the Azure Portal:
<LINK TO DEPLOYMENT>
(✓) Done: Resource group: <YOUR RESOURCE GROUP>
(✓) Done: Container Registry: <ID>
(✓) Done: Log Analytics workspace: <ID>
(✓) Done: Container Apps Environment: <ID>
SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>
Deploying services (azd deploy)
(✓) Done: Deploying service apiservice
- Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/
(✓) Done: Deploying service webfrontend
- Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/
Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>
SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.
azd up
コマンドは、次の個々の azd
コマンドのラッパーとして機能し、1 つの手順でリソースをプロビジョニングおよびデプロイします。
-
azd package
: アプリ プロジェクトとその依存関係はコンテナーにパッケージ化されます。 -
azd provision
: アプリに必要な Azure リソースがプロビジョニングされます。 -
azd deploy
: プロジェクトはコンテナーとして Azure Container Registry インスタンスにプッシュされ、コードがホストされる Azure Container Apps の新しいリビジョンを作成するために使用されます。
azd up
ステージが完了すると、アプリは Azureで使用できるようになり、Azure ポータルを開いてリソースを探索できます。
azd
は、デプロイされたアプリに直接アクセスするための URL も出力します。
デプロイされたアプリをテストする
アプリがプロビジョニングおよびデプロイされたので、Azure ポータルを参照できます。 アプリをデプロイしたリソース グループに、3 つのコンテナー アプリとその他のリソースが表示されます。
web
コンテナー アプリをクリックして、ポータルで開きます。
アプリケーション URL リンクをクリックして、ブラウザーでフロントエンドを開きます。
ナビゲーション バーで [Weather] ノードをクリックすると、フロントエンド web
コンテナー アプリが apiservice
コンテナー アプリを呼び出してデータを取得します。 フロントエンドの出力は、redis
コンテナー アプリと .NET AspireRedis Output Caching 統合を使用してキャッシュされます。 フロントエンドを数回更新すると、気象データがキャッシュされていることがわかります。 数秒後に更新されます。
.NET .NET Aspire ダッシュボードをデプロイする
.NET .NET Aspire ダッシュボードは、ホストされているアプリの一部としてデプロイできます。 この機能が完全にサポートされるようになりました。 デプロイ時に、azd 出力ログによって、デプロイされたダッシュボードに追加の URL が出力されます。
azd monitor
を実行して、ダッシュボードを自動的に起動できます。
azd monitor
リソースのクリーンアップ
作成した Azure リソースが不要になったら、次の Azure CLI コマンドを実行してリソース グループを削除します。 リソース グループを削除すると、その中に含まれるリソースも削除されます。
az group delete --name <your-resource-group-name>
詳細については、「のリソースをクリーンアップするには、Azureを参照してください。」
.NET Aspire