本快速入门介绍如何创建第一个 Aspire 应用并将其部署到 Azure 应用服务。 Azure 应用服务提供了一个完全托管的平台,用于托管内置基础设施维护、安全修补和可扩展性的Web应用程序。
你可以通过使用适用于 GitHub Codespaces 的官方 Aspire 开发容器,直接在浏览器中完成整个快速入门流程。 最后,已将正在运行的 Aspire 应用部署到 Azure 应用服务。
Important
Aspire Azure 应用服务 整合目前處於預覽階段。
本快速入门使用 C# AppHost 和 .NET 项目。 Aspire 还支持 TypeScript 应用主机和多语种应用资源。 更多信息请参见 Aspire AppHost 和 Aspire 13.5 的新动态。
先决条件
- 拥有有效订阅的 Azure 帐户。 创建帐户。
- 一个可以访问 GitHub Codespaces 的 GitHub 账户。
- 代码空间中可用的Azure CLI用于认证。
在 GitHub codespace 中创建 Aspire 初学者应用
在新仓库中,选择 代码>空间>在主仓库创建代码空间。
你的浏览器会用 Visual Studio Code 打开一个代码空间。 该环境包括 Aspire CLI 和可信的本地 HTTPS 开发证书。
更多信息请参见使用 GitHub Codespaces 与 Aspire 开发。
在终端中,创建一个新的Aspire应用:
aspire new aspire-starter --name aspire-starter --output aspire-starter该命令创建一个名为完整 Aspire 解决方案的新目录
aspire-starter,包括:- 用于编排的 AppHost 项目
- 共享配置的 ServiceDefaults 项目
- 示例 API 和 Web 前端项目
导航到项目目录:
cd aspire-starter
添加 Azure 应用服务集成
将 Aspire 应用配置为部署到 Azure 应用服务。
添加 Azure 应用服务 托管集成:
aspire add Aspire.Hosting.Azure.AppService该
aspire add命令检测 AppHost 项目并添加该Aspire.Hosting.Azure.AppService包。 有关详细信息,请参阅aspire add。打开 aspire-starter/aspire-starter/AppHost/AppHost.cs。
在
CreateBuilder行后添加 Azure 应用服务环境:builder.AddAzureAppServiceEnvironment("app-service-env");有关详细信息,请参阅是否需要应用服务环境才能运行 Aspire 应用?
添加
.WithExternalHttpEndpoints()到apiservice项目。 您的完整apiservice资源应如下所示:var apiService = builder.AddProject<Projects.aspire_starter_ApiService>("apiservice") .WithExternalHttpEndpoints() .WithHttpHealthCheck("/health");注释
App Service 仅支持外部 HTTP 和 HTTPS 端点,并为每个部署的应用提供一个独立的目标端口。 起始模板已经暴露了前端端点。 欲了解更多信息,请参见 Azure 应用服务 Hosting integration 。
从解决方案根节点运行
aspire run以本地验证 AppHost。
部署到 Azure 云
登录到 Azure:
az login部署应用程序:
aspire deploy提示时,选择你的 Azure 订阅、位置和资源组。 Aspire 会将选定的部署设置存储为 AppHost 用户秘密,方便你复用。
该
aspire deploy命令根据 AppHost.cs 代码执行以下作:- 创建或重用所选资源组
- 创建 Azure 应用服务计划
- 创建一个 Azure 容器注册表
- 创建两个应用服务 Web 应用(一个用于 API,一个用于前端)
- 创建一个托管的Aspire仪表板资源
- 构建并容器化您的应用程序
- 将容器推送到Azure 容器注册表
- 将容器部署到应用服务
有关部署设置和认证的更多信息,请参见部署到Azure。
部署完成后,命令会显示已部署服务和Aspire仪表盘的端点URL。
有关部署流程的更多信息,请参见“部署到Azure 应用服务”。
浏览 Aspire 应用
在部署输出中,找到服务的 URL
webfrontend。 它看起来类似于:webfrontend: https://webfrontend-xxxxx.chinacloudsites.cn复制 URL 并在新的浏览器选项卡中打开它。
您会看到在 Azure 应用服务 上运行的 Aspire 入门应用程序。 Web 前端与 API 服务通信,演示分布式体系结构。
尝试浏览应用以验证它是否正常工作。
若要查看 Aspire 仪表板,请在部署输出中找到 Aspire 仪表板 URL,并在新的浏览器选项卡中打开它。
在 Azure 门户中查看部署详细信息
导航到 Azure 门户。
在搜索栏中,键入 资源组 并选择 “资源组”。
找到并选择你在
aspire deploy期间选择的资源组。
您应该能看到以下资源:
- 应用服务计划:托管基础结构
- 应用服务:您的 Web 前端和 API 服务应用
- Aspire Dashboard:一个由基于角色的访问控制(RBAC)保护的托管 Azure 资源。
- 容器注册表:存储容器映像
- 用户分配的标识:提供服务之间的安全访问
清理资源
不再需要 Azure 资源时,请将其删除以避免产生费用。
在 codespace 终端中,运行:
aspire destroy出现提示时,确认要销毁已部署的环境。
该命令执行由应用服务环境注册的销毁步骤。 有关详细信息,请参阅 aspire destroy。
Caution
aspire destroy 删除整个资源组,包括非Aspire创建的资源。 确认前先查看目标资源组。
常见问题解答
是否需要应用服务环境才能运行 Aspire 应用?
No. 尽管名称如此,AddAzureAppServiceEnvironment并不会在 Isolated 层级中预配 应用服务环境。 它创建了一个Aspire环境资源,代表你应用的应用服务托管基础设施。
调用 AddAzureAppServiceEnvironment时,它会预配:
- Azure 应用服务计划 (Linux 上的高级 P0V3 层默认)
- 用于存储容器映像的 Azure 容器注册表
- 用户分配的托管身份,用于在服务之间实现安全访问
此 Aspire 环境概念将资源组合在一起,并提供将 Aspire 应用部署到 Azure 应用服务所需的基础结构。
如何自定义我的应用服务部署?
可以通过修改AppHost.cs配置来自定义应用服务部署。 Aspire Azure 应用服务集成提供了多种自定义部署的方法:
- 配置应用服务计划:调整 SKU、级别和伸缩选项
- 自定义应用服务设置:添加环境变量、连接字符串和应用设置
- 配置基础结构:修改网络、身份验证和其他Azure资源
- 使用现有资源:连接到现有应用服务计划或其他 Azure 资源
有关详细信息,请参阅 配置 Aspire 应用程序以用于 Azure 应用服务。
有关支持的 App Service 工作负载和部署行为的更多信息,请参见 Azure 应用服务 托管集成和部署到 Azure 应用服务。
后续步骤
已成功将 Aspire 应用部署到 Azure 应用服务! 下面是一些要探索的后续步骤: