Aspire プロジェクトは、コンテナー化された環境で実行するように設計されています。
Azure Container Apps は、サーバーレス プラットフォームでマイクロサービスとコンテナー化されたアプリケーションを実行できるフル マネージド環境です。 この記事では、新しいAspire ソリューションを作成し、Azure Container Apps (Azure Developer CLI) を使用して Microsoft azdに展開する手順について説明します。 次のタスクを完了する方法について説明します。
- Azure リソース グループとコンテナー レジストリをプロビジョニングする
- Aspire プロジェクトをコンテナー イメージとして Azure Container Registry に発行する
- Redis で Azure コンテナーをプロビジョニングする
- Azure Container Apps環境にアプリをデプロイする
- アプリケーション コンソールのログを表示してアプリケーションの問題をトラブルシューティングする
[前提条件]
Aspireを使用するには、次のものがローカルにインストールされている必要があります。
-
.NET 8.0 または .NET 9.0。
- Aspire 9.4 以降では、.NET 10 Preview 5 以降がサポートされています。
- OCI 準拠のコンテナー ランタイム。次に例を示します。
- Docker デスクトップ または Podman. 詳細については、「コンテナー ランタイム」を参照してください。
- 次のような統合開発者環境 (IDE) またはコード エディター。
- Visual Studio 2022 バージョン 17.9 以降 (任意)
-
Visual Studio Code (任意)
- C# Dev Kit: 拡張 (オプション)
- JetBrains Rider とプラグインAspire(省略可能)
詳細については、Aspireセットアップとツール、および SDK のAspireに関する説明を参照してください。
このチュートリアルの代わりに、さらに詳しいガイドをお探しであれば、「
Aspire プロジェクトをazdを使用してデプロイする
AspireとAzure Container Apps (ACA) では、.NETを使用してクラウドネイティブ アプリを構築するための優れたホスティング シナリオがあります。 摩擦のないエクスペリエンスを提供するために、Azure Developer CLIの固有のazd (Aspire) にいくつかの優れた新機能を組み込み、Azureの開発とデプロイを容易にしています。 インフラストラクチャをきめ細かく制御する必要がある運用シナリオについては、「AspireAzureデプロイのカスタマイズ」を参照してください。 ただし、新しいプロジェクトでは、クラウドにデプロイされた新しいマイクロサービス トポロジを取得するための成功への簡単なパスは見つかりません。
Aspire プロジェクトを作成する
最初に、この記事では、AspireAspire テンプレートから プロジェクトを作成していることを前提としています。 詳細については、「 クイック スタート: 最初の Aspire プロジェクトをビルドする」を参照してください。
リソースの名前付け
新しい Azure リソースを作成するときは、名前付けの要件に従う必要があります。 Azure Container Appsの場合、名前の長さは 2 ~ 32 文字で、小文字、数字、ハイフンで構成されている必要があります。 名前は文字で始まり、英数字で終わる必要があります。
詳細については、Azure リソースの名前付け規則と制限を参照してください。
Azure Developer CLIをインストールします。
azdをインストールするプロセスはオペレーティング システムによって異なりますが、winget、brew、apt、または直接curl経由で広く利用できます。
azdをインストールするには、「Azure Developer CLIのインストール」を参照してください。
テンプレートを初期化する
新しいターミナルウィンドウを開き、
cdして、ソリューションのディレクトリに移動します。azd initコマンドを実行して、azdを使用してプロジェクトを初期化します。このコマンドにより、ローカル ディレクトリ構造が検査され、アプリの種類が決定されます。azd initコマンドの詳細については、azd init 参照してください。 が 3 つのアプリ初期化オプションを求められたら、
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 Create a minimal projectディレクトリをスキャンした後、
azd正しい 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 プロジェクトなどのアプリのサービス Aspire について説明し、それらを Azure リソースにマップします。
-
.azure/config.json: 現在のアクティブな環境が何であるかを
azd通知する構成ファイル。 - .azure/aspireazddev/.env: 環境固有のオーバーライドが含まれています。
テンプレートをデプロイする
azdテンプレートが初期化されると、azd up を使用して、AppHost プロジェクト ディレクトリから単一のコマンドとしてプロビジョニングとデプロイ プロセスを実行できます。azd up使用可能なオプションの一覧から、デプロイするサブスクリプションを選択します。
Select an Azure Subscription to use: [Use arrows to move, type to filter] 1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx) 2. SampleSubscription02 (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 Aspire DASHBOARD>
SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.
azd up コマンドは、次の個々のazd コマンドのラッパーとして機能し、単一の手順でリソースをプロビジョニングおよびデプロイします。
-
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 コンテナー アプリとAspireRedis出力キャッシュ統合を使用してキャッシュされます。 フロントエンドを数回更新すると、気象データがキャッシュされていることがわかります。 数秒後に更新されます。
Aspire ダッシュボードをデプロイする
Aspire ダッシュボードは、ホストされているアプリの一部としてデプロイできます。 この機能が完全にサポートされるようになりました。 デプロイ時に、azd 出力ログによって、デプロイされたダッシュボードに追加の URL が出力されます。
azd monitorを実行して、ダッシュボードを自動的に起動できます。
azd monitor
リソースをクリーンアップする
作成した Azure リソースが不要になったら、次の Azure CLI コマンドを実行してリソース グループを削除します。 リソース グループを削除すると、その中に含まれるリソースも削除されます。
az group delete --name <your-resource-group-name>
詳細については、「リソースをクリーンアップする」をAzureで参照してください。
Aspire