クイック スタート: Azure App Service にアスパイア アプリをデプロイする

このクイック スタートでは、Azure App Service に最初のアスパイア アプリを作成してデプロイする方法について説明します。 Azure App Service には、組み込みのインフラストラクチャ メンテナンス、セキュリティ修正プログラムの適用、スケーリングを備えた Web アプリをホストするためのフル マネージド プラットフォームが用意されています。

このクイックスタートは、公式のAspire開発コンテナ(GitHub Codespaces)を使ってブラウザ上で完了できます。 これで、実行中のアスパイア アプリが Azure App Service にデプロイされます。

重要

Aspire Azure App Service 統合は現在プレビュー段階です。

このクイックスタートはC#のAppHostと.NETプロジェクトを使用しています。 Aspireはまた、TypeScript AppHostsや多言語のアプリケーションリソースもサポートしています。 詳細については、 Aspire AppHost および Aspire 13.5の新要素をご覧ください。

前提条件

GitHub コードスペースでアスパイア スターター アプリを作成する

  1. Aspire開発コンテナテンプレートからリポジトリを作成します

  2. 新しいリポジトリで、メインでCode>Codespaces>Create codespaceを選択します。

    ブラウザはVisual Studio Codeでコードスペースを開きます。 環境にはAspire CLIと信頼できるローカルHTTPS開発証明書が含まれています。

    詳細については、「GitHub Codespacesを使ったDevelop with Aspire」をご覧ください。

  3. ターミナルで新しいAspireアプリを作成します:

    aspire new aspire-starter --name aspire-starter --output aspire-starter
    

    このコマンドは、次のような完全なアスパイア ソリューションを使用して、 aspire-starter という名前の新しいディレクトリを作成します。

    • オーケストレーション用の AppHost プロジェクト
    • 共有構成用の ServiceDefaults プロジェクト
    • サンプル API と Web フロントエンド プロジェクト
  4. プロジェクト ディレクトリに移動します。

    cd aspire-starter
    

Azure App Service 統合の追加

Azure App Service にデプロイするように、アスパイア アプリを構成します。

  1. Azure App Service のホスティング統合を追加します:

    aspire add Aspire.Hosting.Azure.AppService
    

    aspire addコマンドはAppHostプロジェクトを検出し、Aspire.Hosting.Azure.AppServiceパッケージを追加します。 詳細については、aspire addを参照してください。

  2. アスパイアスターター/アスパイアスターターを開きます。AppHost/AppHost.cs

  3. CreateBuilder行の後に Azure App Service 環境を追加します。

    builder.AddAzureAppServiceEnvironment("app-service-env");
    

    詳細については、「 アスパイア アプリを実行するには App Service 環境が必要ですか?」を参照してください。

  4. .WithExternalHttpEndpoints() プロジェクトにapiserviceを追加します。 あなたの完全な apiservice リソースは以下のようになります。

    var apiService = builder.AddProject<Projects.aspire_starter_ApiService>("apiservice")
        .WithExternalHttpEndpoints()
        .WithHttpHealthCheck("/health");
    

    Note

    App Serviceは外部HTTPおよびHTTPSエンドポイントのみをサポートし、各展開アプリごとに1つの異なるターゲットポートを割り当てます。 スターターテンプレートにはすでにフロントエンドエンドポイントが公開されています。 詳細については、Azure App Service Hosting integration をご覧ください。

  5. ソリューションルートから、 aspire run を実行してローカルでAppHostを検証します。

    現在のAspireダッシュボードのスクリーンショットで、App Service環境とサンプルアプリリソースを示しています。

Azure にデプロイ

  1. Azure にサインインします。

    az login
    
  2. アプリケーションをデプロイします。

    aspire deploy
    

    促されたら、Azureのサブスクリプション、ロケーション、リソースグループを選択します。 Aspireは選択したデプロイ設定をAppHostのユーザー秘密として保存しているので、再利用可能です。

    aspire deploy コマンドは、AppHost.cs コードに基づいて次のアクションを実行します。

    • 選択したリソースグループを作成または再利用します
    • Azure App Service プランを作成する
    • Azure Container Registry を作成します
    • 2 つの App Service Web アプリを作成します (1 つは API 用、1 つはフロントエンド用)
    • 管理対象のアスパイア ダッシュボード リソースを作成します
    • アプリケーションのビルドとコンテナー化
    • コンテナーを Azure Container Registry にプッシュする
    • App Service にコンテナーをデプロイします

    デプロイ設定や認証の詳細については、「Azureへのデプロイ」をご覧ください。

  3. 展開が完了すると、コマンドは展開したサービスおよびAspireダッシュボードのエンドポイントURLを表示します。

    デプロイフローの詳細については、「Deploy to Azure App Service」をご覧ください。

アスパイア アプリを参照する

  1. デプロイ出力で、 webfrontend サービスの URL を見つけます。 次のようになります。

    webfrontend: https://webfrontend-xxxxx.azurewebsites.net
    
  2. URL をコピーし、新しいブラウザー タブで開きます。

    Azure App Service で実行されているアスパイア スターター アプリが表示されます。 Web フロントエンドは API サービスと通信し、分散アーキテクチャを示します。

  3. アプリ内を移動して、正常に動作していることを確認してみてください。

  4. アスパイア ダッシュボードを表示するには、デプロイ出力で アスパイア ダッシュボード の URL を見つけて、新しいブラウザー タブで開きます。

Azure portal でデプロイの詳細を表示する

  1. Azure Portal に移動します。

  2. 検索バーに「 リソース グループ 」と入力し、[ リソース グループ] を選択します。

  3. aspire deploy中に選んだリソースグループを見つけて選択してください。

    AspireがデプロイしたAspireアプリのリソースグループビューのスクリーンショットです。

    次のリソースが表示されます。

    • App Service プラン: ホスティング インフラストラクチャ
    • App Services: ウェブフロントエンドアプリとAPIサービスアプリ
    • Aspire Dashboard:ロールベースアクセス制御(RBAC)で保護された管理されたAzureリソースです。
    • Container Registry: コンテナー イメージを格納します
    • ユーザー割り当て ID: サービス間のセキュリティで保護されたアクセスを提供します

リソースをクリーンアップする

Azure リソースが不要になったら、料金が発生しないように削除します。

  1. codespace ターミナルで、次のコマンドを実行します。

    aspire destroy
    
  2. プロンプトが出たら、展開した環境を破壊したいかどうかを確認してください。

このコマンドはApp Service環境で登録された破壊ステップを実行します。 詳細については、aspire destroyを参照してください。

Caution

aspire destroy Aspireで作成されていないリソースを含むリソースグループ全体を削除します。 確定する前にターゲットリソースグループを確認してください。

よく寄せられる質問

アスパイア アプリを実行するには App Service 環境が必要ですか?

No. 名前に反して、AddAzureAppServiceEnvironmentは孤立ティアにApp Service Environmentを提供していません。 これは、あなたのアプリケーションのApp Serviceホスティングインフラストラクチャを表すAspire環境リソースを作成します。

AddAzureAppServiceEnvironmentを呼び出すと、次の内容がプロビジョニングされます。

  • Azure App Service プラン (既定では Linux 上の Premium P0V3 レベル)
  • コンテナー イメージを格納するための Azure Container Registry
  • サービス間の安全なアクセスのためのユーザーが割り当てたマネージド ID

このアスパイア環境の概念は、リソースをグループ化し、Azure App Service にアスパイア アプリをデプロイするために必要なインフラストラクチャを提供します。

App Service のデプロイをカスタマイズする方法

AppHost.cs構成を変更することで、App Service のデプロイをカスタマイズできます。 アスパイア Azure App Service 統合には、デプロイをカスタマイズするいくつかの方法が用意されています。

  • App Service プランの構成: SKU、レベル、スケーリングのオプションを調整する
  • App Service の設定をカスタマイズする: 環境変数、接続文字列、アプリ設定を追加する
  • インフラストラクチャの構成: ネットワーク、認証、およびその他の Azure リソースを変更する
  • 既存のリソースを使用する: 既存の App Service プランまたはその他の Azure リソースに接続する

詳細については、「 Azure App Service のアスパイア アプリを構成する」を参照してください。

サポートされるApp Serviceワークロードやデプロイ動作の詳細については、「Azure App Service Hosting integration and Deploy to Azure App Service」をご覧ください。

次のステップ

Azure App Service にアスパイア アプリが正常にデプロイされました。 探索する次の手順を次に示します。

Azure App Service の機能を確認する