Compartilhar via

快速入门:将 Aspire 应用部署到Azure App Service

本快速入门介绍如何创建第一个 Aspire 应用并将其部署到 Azure App Service。 Azure App Service提供了一个完全托管的平台,用于托管内置基础设施维护、安全修补和可扩展性的Web应用程序。

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

注释

虽然本快速入门侧重于.NET项目,但 Aspire 还支持从 Aspire 1.3的 Python 应用程序。 还可以使用相同的集成将 Python Aspire 应用部署到Azure App Service。

先决条件

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

  1. 导航到 github.com/codespaces

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

    浏览器将打开一个新的代码空间,其中Visual Studio代码在浏览器中运行。 环境包括预安装的 .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 App Service 集成

将 Aspire 应用配置为部署到Azure App Service。

  1. 添加 Azure App Service 托管服务集成包:

    aspire add azure-appservice
    

    aspire add 命令会自动检测 AppHost project,并添加 Aspire.Hosting.Azure。AppService 包。

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

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

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

    有关详细信息,请参阅 运行 Aspire 应用是否需要 App Service 环境?

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

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

    注释

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

部署到Azure

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

    azd init
    

    出现提示时,

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

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

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

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

    azd up
    

    出现提示时:

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

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

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

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

  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 App Service 上运行的 Aspire 入门应用程序。 Web 前端与 API 服务通信,演示分布式体系结构。

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

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

    一张在 Azure 应用服务中运行的应用程序的 Aspire 仪表盘的屏幕截图。

在Azure portal中查看部署详细信息

  1. 导航到 Azure portal

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

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

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

    您应该能看到以下资源:

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

清理资源

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

  1. 在 codespace 终端中,运行:

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

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

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

常见问题

是否需要 App Service 环境才能运行 Aspire 应用?

否,无需使用 App Service environment 在 Azure App Service 中运行 Aspire 应用。 AddAzureAppServiceEnvironment 方法创建一个 Aspire 环境概念,该概念表示应用程序的托管基础结构,在本例中恰好App Service。 尽管名称如此,它并不涉及App Service环境。

调用 AddAzureAppServiceEnvironment时,它会预配:

  • 默认情况下,Azure App Service计划(Linux 上的高级 P0V3 层)
  • 用于存储容器映像的Azure Container Registry
  • 用户分配的托管标识,用于在服务之间安全访问

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

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

可以通过修改AppHost.cs配置文件来自定义您的 App Service 部署。 Aspire Azure App Service集成提供了多种自定义部署的方法:

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

有关详细信息,请参阅 配置 Aspire 应用程序以用于 Azure 应用服务

后续步骤

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

浏览Azure App Service功能