你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure Pipelines 在 CI/CD 中部署环境
本教程介绍如何将 Azure 部署环境 (ADE) 集成到 Azure Pipelines CI/CD 管道中。
持续集成和持续交付 (CI/CD) 是一种软件开发方法,可帮助团队自动执行编译、测试和部署软件更改的过程。 CI/CD 使你能够更频繁、更自信地发布软件更改。
在开始本教程之前,请通过查看 Azure 部署环境的关键概念来熟悉部署环境资源和概念。
本教程介绍如何执行下列操作:
- 创建和配置 Azure Repos 存储库
- 将目录添连接到开发人员中心
- 配置服务连接
- 创建管道
- 创建环境
- 测试 CI/CD 管道
先决条件
- 具有活动订阅的 Azure 帐户。
- Azure 订阅的所有者权限。
- Azure DevOps 订阅。
- 免费创建帐户。
- Azure DevOps 组织和项目。
- Azure 部署环境。
创建和配置 Azure Repos 存储库
- 登录到你的 Azure DevOps 组织 (
https://dev.azure.com/<your-organization>
),并选择你的项目。 将<your-organization>
文本占位符替换为项目标识符。 - 选择“Repos”>“文件”。
- 在“导入存储库”中,选择“导入”。
- 在 导入 Git 存储库中,选择或输入以下内容:
- 存储库类型:Git
- 克隆 URL:https://github.com/Azure/deployment-environments
配置环境类型
环境类型可定义开发团队可以部署的不同类型的环境。 可以为每个环境类型应用不同的设置。 在开发人员中心级别创建环境类型,并在项目级别引用。
创建开发人员中心环境类型:
登录 Azure 门户。
在“开发人员中心”中,选择你的开发人员中心。
在左侧菜单中的“环境配置”下选择“环境类型”,然后选择“创建”。
使用以下步骤创建三种环境类型:Sandbox、FunctionApp、WebApp。 在“创建环境类型”中,输入以下信息,然后选择“添加”。
名称 值 名称 输入环境类型的名称。 标记 输入标记名称和标记值。 检查 Azure 门户通知,确认是否已添加环境类型。
创建项目环境类型:
在“管理”的左侧菜单中,选择“项目”,然后选择要使用的项目。
在左侧菜单中的“环境配置”下选择“环境类型”,然后选择“添加”。
使用以下步骤添加三种环境类型:Sandbox、FunctionApp、WebApp。 在“将环境类型添加到 <project-name>”中,输入或选择以下信息:
名称 值 类型 选择要为特定项目启用的开发人员中心级环境类型。 部署订阅 选择在其中创建环境的订阅。 部署标识 选择系统分配的标识或用户分配的托管标识以代表用户执行部署。 对环境资源的权限>环境创建者角色 选择将被授予环境资源访问权限的角色。 “对环境资源的权限”>“其他访问权限” 选择要分配给环境资源上特定角色的用户或 Microsoft Entra 组。 标记 输入标记名称和标记值。 这些标记将应用于作为环境一部分创建的所有资源。 检查 Azure 门户通知,确认是否已添加环境类型。
配置服务连接点
在 Azure Pipelines 中,在 Azure DevOps 项目中创建服务连接,以访问 Azure 订阅中的资源。 创建服务连接时,Azure DevOps 会创建 Microsoft Entra 服务主体对象。
登录到你的 Azure DevOps 组织 (
https://dev.azure.com/<your-organization>
),并选择你的项目。 将<your-organization>
文本占位符替换为项目标识符。选择“项目设置”>“服务连接”>“+ 新建服务连接”。
在“新建服务连接”窗格中,选择“Azure 资源管理器”,然后选择“下一步”。
依次选择“服务主体(自动)”身份验证方法、“下一步”。
输入服务连接详细信息,然后选择“保存”以创建服务连接。
字段 值 范围级别 订阅。 订阅 选择用于托管开发人员中心资源的 Azure 订阅。 资源组 选择包含开发人员中心资源的资源组。 服务连接名称 为服务连接输入唯一的名称。 向所有管道授予访问权限 已选中。 从服务连接列表中,选择之前创建的连接,然后选择“管理服务主体”。 Azure 门户将在单独的浏览器标签页中打开,并显示服务主体详细信息。
在 Azure 门户中,复制“显示名称”值。 在下一步中,使用此值向服务主体授予运行负载测试的权限。
向服务连接授予对 ADE 项目的访问权限
Azure 部署环境使用基于角色的访问控制来授予对 ADE 资源执行特定活动的权限。 若要从 CI/CD 管道进行更改,请向服务主体授予部署环境用户角色。
- 在 Azure 门户中,转到你的 ADE 项目。
- 选择“访问控制(IAM)”>“添加”>“添加角色分配”。
- 在“角色”选项卡中,选择作业功能角色列表中的“部署环境用户”。
- 在“成员”选项卡中,选择“选择成员”,然后使用之前复制的显示名称搜索服务主体。
- 选择服务主体,然后选择“选择”。
- 在“查看 + 分配”选项卡中,选择“查看 + 分配”,以添加角色分配。
现在可以使用 Azure Pipelines 工作流定义中的服务连接来访问 ADE 环境。
向帐户授予对 ADE 项目的访问权限
若要查看右其他用户创建的环境(包括服务连接),需要向帐户授予对 ADE 项目的读取访问权限。
- 在 Azure 门户中,转到你的 ADE 项目。
- 选择“访问控制(IAM)”>“添加”>“添加角色分配”。
- 在“角色”选项卡中,选择作业功能角色列表中的“部署环境读取者”。
- 在“成员”选项卡中,选择“选择成员”,然后搜索自己的帐户。
- 从列表中选择帐户,然后选择“选择”。
- 在“查看 + 分配”选项卡中,选择“查看 + 分配”,以添加角色分配。
现在可以查看 Azure Pipelines 工作流创建的环境。
配置管道
编辑 Azure Repos 存储库中的 azure-pipelines.yml
文件以自定义管道。
在管道中,定义创建环境的步骤。 在此管道中,会将创建环境的步骤定义为作业,这是一系列按顺序作为单元运行的步骤。
若要自定义管道,请执行以下操作:
- 指定要使用的服务连接,管道使用 Azure CLI 创建环境。
- 使用内联脚本运行创建环境的 Azure CLI 命令。
Azure CLI 是一种命令行工具,会提供一组用于处理 Azure 资源的命令。 若要发现更多 Azure CLI 命令,请参阅 az devcenter。
在 Azure DevOps 项目中,选择“存储库”>“文件”。
在“文件”窗格中,从
.ado
文件夹中选择azure-pipelines.yml
文件。在
azure-pipelines.yml
文件中,使用以下代码编辑现有内容:将
<AzureServiceConnectionName>
替换为之前创建的服务连接的名称。在
Inline script
中,将以下每个占位符替换为适用于 Azure 环境的值:占位符 值 <dev-center-name>
开发人员中心的名称。 <project-name>
项目名称。 <catalog-name>
目录的名称。 <environment-definition-name>
不要更改。 定义使用的环境定义。 <environment-type>
环境类型。 <environment-name>
指定新环境的名称。 <parameters>
不要更改。 引用定义环境的参数的 json 文件。
选择提交保存您所做的更改。
在“提交更改”窗格中,输入提交消息,然后选择“提交”。
使用管道创建环境
接下来,运行管道来创建 ADE 环境。
- 在你的 Azure DevOps 项目中,选择“管道”。
- 选择之前创建的管道,然后选择“运行管道”。
- 可以通过选择管道名称,然后选择“运行”来检查管道运行的进度。 选择运行以查看管道运行的详细信息。
- 还可以通过在 Azure 门户中选择开发人员中心、选择项目,然后选择“环境”来检查环境创建进度。
可以在持续集成 (CI) 和/或持续交付 (CD) 管道中的任何位置插入此作业。 Azure Pipelines 文档入门,详细了解如何创建和管理管道。
清理资源
完成本教程中创建的资源后,可以将其删除以避免产生费用。
使用以下命令删除在本教程中创建的环境:
az devcenter dev environment delete --dev-center <DevCenterName> --project-name <DevCenterProjectName> --name <DeploymentEnvironmentInstanceToCreateName> --yes