共用方式為

快速入门:将 Aspire 应用部署到 Azure 应用服务

本快速入门介绍如何创建第一个 Aspire 应用并将其部署到 Azure 应用服务。 Azure 应用服务提供了一个完全托管的平台,用于托管具有内置基础结构维护、安全修补和缩放的 Web 应用。

可以使用 GitHub Codespaces 在浏览器中完成整个快速入门,GitHub Codespaces 提供了预配置的开发环境,并已安装 .NET 10 和 Azure 开发者 CLI。 最后,已将正在运行的 Aspire 应用部署到 Azure 应用服务。

注释

虽然本快速入门重点介绍 .NET 项目,但 Aspire 还支持从 Aspire 1.3 开始的 Python 应用程序。 Python Aspire 应用还可以使用相同的集成部署到 Azure 应用服务。

先决条件

在 GitHub codespace 中创建 Aspire 初学者应用

  1. 导航到 github.com/codespaces

  2. 对于 .NET 模板,请选择“ 使用此模板”。

    浏览器打开一个新的代码空间,Visual Studio Code 在浏览器中运行。 环境包括预安装的 .NET 10 和 Azure 开发人员 CLI。

  3. 在 codespace 终端中,全局安装 Aspire CLI:

    dotnet tool install -g Aspire.Cli
    
  4. 在终端中,创建新的 Aspire 应用。 出现提示时,接受默认值。

    aspire new aspire-starter --name aspire-starter
    

    该命令创建一个名为完整 Aspire 解决方案的新目录 aspire-starter ,包括:

    • 用于编排的 AppHost 项目
    • 共享配置的 ServiceDefaults 项目
    • 示例 API 和 Web 前端项目
  5. 导航到项目目录:

    cd aspire-starter
    

添加 Azure 应用服务集成

将 Aspire 应用配置为部署到 Azure 应用服务。

  1. 添加 Azure 应用服务托管集成包:

    aspire add azure-appservice
    

    aspire add 命令会自动检测 AppHost 项目,并将 Aspire.Hosting.Azure.AppService 包添加到其中。

  2. 打开 aspire-starter/aspire-starter/AppHost/AppHost.cs

  3. 在行 CreateBuilder 后添加 Azure 应用服务环境:

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

    有关详细信息,请参阅是否需要应用服务环境才能运行 Aspire 应用?

  4. 添加.WithExternalHttpEndpoints()apiservice项目。 完整的 apiservice 代码应如下所示:

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

    注释

    由于 Aspire 与应用服务当前不通过内部终结点管理应用之间的流量,因此 apiservice 需要 .WithExternalHttpEndpoints()apiservice 需要通过外部 HTTP 终端节点进行访问,以实现服务间通信的正常工作。

部署到 Azure 云

  1. 在当前目录中直接使用 aspire-starter 初始化 azd。

    azd init
    

    出现提示时,

    • 选择“ 扫描当前目录”。
    • 选择 “确认并继续初始化我的应用”。
    • 对于 输入唯一的环境名称:,请输入您想要的名称,比如 aspire-quickstart

    该命令创建部署所需的配置文件,默认情况下,它只是指向 AppHost 项目的 azure.yaml 文件。 此配置允许 azd up 通过标识 AppHost 项目来工作。 host: containerapp 的值并不决定你的部署目标,因为 azd 使用了在 AppHost.cs 文件中定义的基础设施(在本例中,是你通过 AddAzureAppServiceEnvironment 添加的应用服务环境)。

  2. 使用 azd auth login. 登录 Azure。 它将启动交互式登录页。 使用 Azure 帐户凭据登录。

    azd auth login
    
  3. 部署应用程序:

    azd up
    

    出现提示时:

    • 订阅:选择 Azure 订阅
    • 位置:选择你附近的区域(例如(亚洲)中国北部 2(chinanorth2)

    azd up 命令根据 AppHost.cs 代码执行以下作:

    • 创建新的资源组
    • 创建 Azure 应用服务计划
    • 创建 Azure 容器注册表
    • 创建两个应用服务 Web 应用(一个用于 API,一个用于前端)
    • 创建一个托管的Aspire仪表板资源
    • 构建并容器化您的应用程序
    • 将容器推送到 Azure 容器注册表
    • 将容器部署到应用服务

    完成此过程需要几分钟时间。

  4. 部署完成后,azd 会显示已部署服务的终结点 URL。

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service apiservice
      - Endpoint: https://apiservice-xxxxxx.chinacloudsites.cn/ 
    
      (✓) Done: Deploying service webfrontend
      - Endpoint: https://webfrontend-xxxxxx.chinacloudsites.cn/ 
    
      Aspire Dashboard: https://app-service-env-aspiredashboard-xxxxxx.chinacloudsites.cn
    
    SUCCESS: Your up workflow to provision and deploy to Azure completed in 1 minute 49 seconds.
    

浏览 Aspire 应用

  1. 在部署输出中,找到服务的 URL webfrontend 。 它看起来类似于:

    webfrontend: https://webfrontend-xxxxx.chinacloudsites.cn
    
  2. 复制 URL 并在新的浏览器选项卡中打开它。

    可以看到在 Azure 应用服务中运行的 Aspire 初学者应用。 Web 前端与 API 服务通信,演示分布式体系结构。

  3. 尝试浏览应用以验证它是否正常工作。

  4. 若要查看 Aspire 仪表板,请在部署输出中找到 Aspire 仪表板 URL,并在新的浏览器选项卡中打开它。

    Azure 应用服务中运行的应用的 Aspire 仪表板的屏幕截图。

在 Azure 门户中查看部署详细信息

  1. 导航到 Azure 门户

  2. 在搜索栏中,键入 资源组 并选择 “资源组”。

  3. 查找并选择 azd 创建的资源组(以 rg- 环境名称开头)。

    AZD 部署的 Aspire 应用的资源组视图的屏幕截图。

    您应该能看到以下资源:

    • 应用服务计划:托管基础结构
    • 应用服务:您的 Web 前端和 API 服务应用
    • Aspire 仪表板:受资源支持的访问控制(RBAC)保护的托管 Azure 资源。
    • 容器注册表:存储容器映像
    • 用户分配的标识:提供服务之间的安全访问

清理资源

不再需要 Azure 资源时,请将其删除以避免产生费用。

  1. 在 codespace 终端中,运行:

    azd down
    
  2. 出现提示时,确认要删除资源。

  3. 选择 “是 ”可永久删除资源组和所有资源。

此命令将删除在本快速入门中创建的所有 Azure 资源。

常见问题

是否需要应用服务环境才能运行 Aspire 应用?

否,无需 应用服务环境 才能在 Azure 应用服务中运行 Aspire 应用。 该方法 AddAzureAppServiceEnvironment 将创建一个 Aspire 环境概念,该概念表示应用程序的托管基础结构,在这种情况下,该基础结构恰好是应用服务。 尽管它的名称,实际上它并不指的是应用服务环境。

调用 AddAzureAppServiceEnvironment时,它会预配:

  • Azure 应用服务计划 (Linux 上的高级 P0V3 层默认)
  • 用于存储容器映像的 Azure 容器注册表
  • 用户分配的托管身份,用于在服务之间实现安全访问

此 Aspire 环境概念将资源组合在一起,并提供将 Aspire 应用部署到 Azure 应用服务所需的基础结构。

如何自定义应用服务部署?

可以通过修改AppHost.cs配置来自定义应用服务部署。 Aspire Azure 应用服务集成提供了多种自定义部署的方法:

  • 配置应用服务计划:调整 SKU、层和缩放选项
  • 自定义应用服务设置:添加环境变量、连接字符串和应用设置
  • 配置基础结构:修改网络、身份验证和其他 Azure 资源
  • 使用现有资源:连接到现有应用服务计划或其他 Azure 资源

有关详细信息,请参阅 为 Azure 应用服务配置 Aspire 应用

后续步骤

已成功将 Aspire 应用部署到 Azure 应用服务! 下面是一些要探索的后续步骤:

探索 Azure 应用服务功能