Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
本快速入门介绍如何创建第一个 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 初学者应用
对于 .NET 模板,请选择“ 使用此模板”。
浏览器打开一个新的代码空间,Visual Studio Code 在浏览器中运行。 环境包括预安装的 .NET 10 和 Azure 开发人员 CLI。
在 codespace 终端中,全局安装 Aspire CLI:
dotnet tool install -g Aspire.Cli在终端中,创建新的 Aspire 应用。 出现提示时,接受默认值。
aspire new aspire-starter --name aspire-starter该命令创建一个名为完整 Aspire 解决方案的新目录
aspire-starter,包括:- 用于编排的 AppHost 项目
- 共享配置的 ServiceDefaults 项目
- 示例 API 和 Web 前端项目
导航到项目目录:
cd aspire-starter
添加 Azure 应用服务集成
将 Aspire 应用配置为部署到 Azure 应用服务。
添加 Azure 应用服务托管集成包:
aspire add azure-appservice该
aspire add命令会自动检测 AppHost 项目,并将 Aspire.Hosting.Azure.AppService 包添加到其中。打开 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");注释
由于 Aspire 与应用服务当前不通过内部终结点管理应用之间的流量,因此
apiservice需要.WithExternalHttpEndpoints()。apiservice需要通过外部 HTTP 终端节点进行访问,以实现服务间通信的正常工作。
部署到 Azure 云
在当前目录中直接使用 aspire-starter 初始化 azd。
azd init出现提示时,
- 选择“ 扫描当前目录”。
- 选择 “确认并继续初始化我的应用”。
- 对于 输入唯一的环境名称:,请输入您想要的名称,比如
aspire-quickstart。
该命令创建部署所需的配置文件,默认情况下,它只是指向 AppHost 项目的 azure.yaml 文件。 此配置允许
azd up通过标识 AppHost 项目来工作。host: containerapp的值并不决定你的部署目标,因为azd使用了在 AppHost.cs 文件中定义的基础设施(在本例中,是你通过AddAzureAppServiceEnvironment添加的应用服务环境)。使用
azd auth login. 登录 Azure。 它将启动交互式登录页。 使用 Azure 帐户凭据登录。azd auth login部署应用程序:
azd up出现提示时:
- 订阅:选择 Azure 订阅
- 位置:选择你附近的区域(例如(亚洲)中国北部 2(chinanorth2)
该
azd up命令根据 AppHost.cs 代码执行以下作:- 创建新的资源组
- 创建 Azure 应用服务计划
- 创建 Azure 容器注册表
- 创建两个应用服务 Web 应用(一个用于 API,一个用于前端)
- 创建一个托管的Aspire仪表板资源
- 构建并容器化您的应用程序
- 将容器推送到 Azure 容器注册表
- 将容器部署到应用服务
完成此过程需要几分钟时间。
部署完成后,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 应用
在部署输出中,找到服务的 URL
webfrontend。 它看起来类似于:webfrontend: https://webfrontend-xxxxx.chinacloudsites.cn复制 URL 并在新的浏览器选项卡中打开它。
可以看到在 Azure 应用服务中运行的 Aspire 初学者应用。 Web 前端与 API 服务通信,演示分布式体系结构。
尝试浏览应用以验证它是否正常工作。
若要查看 Aspire 仪表板,请在部署输出中找到 Aspire 仪表板 URL,并在新的浏览器选项卡中打开它。
在 Azure 门户中查看部署详细信息
导航到 Azure 门户。
在搜索栏中,键入 资源组 并选择 “资源组”。
查找并选择 azd 创建的资源组(以
rg-环境名称开头)。
您应该能看到以下资源:
- 应用服务计划:托管基础结构
- 应用服务:您的 Web 前端和 API 服务应用
- Aspire 仪表板:受资源支持的访问控制(RBAC)保护的托管 Azure 资源。
- 容器注册表:存储容器映像
- 用户分配的标识:提供服务之间的安全访问
清理资源
不再需要 Azure 资源时,请将其删除以避免产生费用。
在 codespace 终端中,运行:
azd down出现提示时,确认要删除资源。
选择 “是 ”可永久删除资源组和所有资源。
此命令将删除在本快速入门中创建的所有 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 应用服务! 下面是一些要探索的后续步骤: