次の方法で共有


AspireプロジェクトをAzure Container Appsにデプロイする

Aspire プロジェクトは、コンテナー化された環境で実行するように設計されています。 Azure Container Apps は、サーバーレス プラットフォームでマイクロサービスとコンテナー化されたアプリケーションを実行できるフル マネージド環境です。 この記事では、新しいAspire ソリューションを作成し、Azure Container Apps (Azure Developer CLI) を使用して Microsoft azdに展開する手順について説明します。 次のタスクを完了する方法について説明します。

  • Azure リソース グループとコンテナー レジストリをプロビジョニングする
  • Aspire プロジェクトをコンテナー イメージとして Azure Container Registry に発行する
  • Redis で Azure コンテナーをプロビジョニングする
  • Azure Container Apps環境にアプリをデプロイする
  • アプリケーション コンソールのログを表示してアプリケーションの問題をトラブルシューティングする

[前提条件]

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をインストールするプロセスはオペレーティング システムによって異なりますが、wingetbrewapt、または直接curl経由で広く利用できます。 azdをインストールするには、「Azure Developer CLIのインストール」を参照してください。

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

  1. 新しいターミナルウィンドウを開き、cdして、ソリューションのディレクトリに移動します。

  2. azd init コマンドを実行して、azdを使用してプロジェクトを初期化します。このコマンドにより、ローカル ディレクトリ構造が検査され、アプリの種類が決定されます。

    azd init
    

    コマンドの詳細については、azd init参照してください。

  3. が 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
    
  4. ディレクトリをスキャンした後、 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
    
  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 プロジェクトなどのアプリのサービス Aspire について説明し、それらを Azure リソースにマップします。
  • .azure/config.json: 現在のアクティブな環境が何であるかを azd 通知する構成ファイル。
  • .azure/aspireazddev/.env: 環境固有のオーバーライドが含まれています。

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

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

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

    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)
    
  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 Aspire DASHBOARD>

SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.

azd up コマンドは、次の個々のazd コマンドのラッパーとして機能し、単一の手順でリソースをプロビジョニングおよびデプロイします。

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

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

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

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

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

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

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

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

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

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