次の方法で共有


.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を使用するには、次のものがローカルにインストールされている必要があります。

詳細については、 セットアップとツールの、および SDK を参照してください。

このチュートリアルの代わりに、より詳細なガイドが必要な場合は、「.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 をインストールするプロセスは、オペレーティングシステムによって異なりますが、wingetbrewapt、または直接 curl経由で広く利用できます。 をインストールするには、のインストールについてはを参照してください。

テンプレートを初期化する

  1. 新しいターミナル ウィンドウを開き、cd ソリューションの .NET プロジェクト ディレクトリに .NET Aspire します。

  2. 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
    
  4. ディレクトリのスキャンが完了すると、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
    
  5. 環境名を入力します。これは、Azure でプロビジョニングされたリソースに名前を付け、devprodなどのさまざまな環境を管理するために使用します。

    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: 環境固有のオーバーライドが含まれています。

テンプレートをデプロイする

  1. azd テンプレートが初期化されると、AppHost プロジェクトディレクトリから、プロビジョニングおよびデプロイのプロセスを1つのコマンドとして実行することができ、azd upを使用します。

    azd up
    
  2. 使用可能なオプションの一覧から、デプロイするサブスクリプションを選択します。

    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)
    
  3. 使用可能なオプションの一覧から、使用する 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 つの手順でリソースをプロビジョニングおよびデプロイします。

  1. azd package: アプリ プロジェクトとその依存関係はコンテナーにパッケージ化されます。
  2. azd provision: アプリに必要な Azure リソースがプロビジョニングされます。
  3. azd deploy: プロジェクトはコンテナーとして Azure Container Registry インスタンスにプッシュされ、コードがホストされる Azure Container Apps の新しいリビジョンを作成するために使用されます。

azd up ステージが完了すると、アプリは Azureで使用できるようになり、Azure ポータルを開いてリソースを探索できます。 azd は、デプロイされたアプリに直接アクセスするための URL も出力します。

デプロイされたアプリをテストする

アプリがプロビジョニングおよびデプロイされたので、Azure ポータルを参照できます。 アプリをデプロイしたリソース グループに、3 つのコンテナー アプリとその他のリソースが表示されます。

.NET Aspire ポータルの Azure プロジェクトのリソース グループのスクリーンショット。

web コンテナー アプリをクリックして、ポータルで開きます。

.NET Aspire ポータルの Azure プロジェクトのフロントエンドのスクリーンショット。

アプリケーション URL リンクをクリックして、ブラウザーでフロントエンドを開きます。

ブラウザーの .NET.NET Aspire プロジェクトのフロントエンドのスクリーンショット。

ナビゲーション バーで [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を参照してください。」