你当前正在访问 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 Repos 存储库

  1. 登录到你的 Azure DevOps 组织 (https://dev.azure.com/<your-organization>),并选择你的项目。 将 <your-organization> 文本占位符替换为项目标识符。
  2. 选择“Repos”>“文件”。
  3. 在“导入存储库”中,选择“导入”。
  4. 导入 Git 存储库中,选择或输入以下内容:

配置环境类型

环境类型可定义开发团队可以部署的不同类型的环境。 可以为每个环境类型应用不同的设置。 在开发人员中心级别创建环境类型,并在项目级别引用。

创建开发人员中心环境类型:

  1. 登录 Azure 门户

  2. 在“开发人员中心”中,选择你的开发人员中心。

  3. 在左侧菜单中的“环境配置”下选择“环境类型”,然后选择“创建”。

  4. 使用以下步骤创建三种环境类型:Sandbox、FunctionApp、WebApp。 在“创建环境类型”中,输入以下信息,然后选择“添加”。

    名称
    名称 输入环境类型的名称。
    标记 输入标记名称和标记值。
  5. 检查 Azure 门户通知,确认是否已添加环境类型。

创建项目环境类型:

  1. 在“管理”的左侧菜单中,选择“项目”,然后选择要使用的项目。

  2. 在左侧菜单中的“环境配置”下选择“环境类型”,然后选择“添加”。

  3. 使用以下步骤添加三种环境类型:Sandbox、FunctionApp、WebApp。 在“将环境类型添加到 <project-name>”中,输入或选择以下信息:

    名称
    类型 选择要为特定项目启用的开发人员中心级环境类型。
    部署订阅 选择在其中创建环境的订阅。
    部署标识 选择系统分配的标识或用户分配的托管标识以代表用户执行部署。
    对环境资源的权限>环境创建者角色 选择将被授予环境资源访问权限的角色。
    “对环境资源的权限”>“其他访问权限” 选择要分配给环境资源上特定角色的用户或 Microsoft Entra 组。
    标记 输入标记名称和标记值。 这些标记将应用于作为环境一部分创建的所有资源。
  4. 检查 Azure 门户通知,确认是否已添加环境类型。

配置服务连接点

在 Azure Pipelines 中,在 Azure DevOps 项目中创建服务连接,以访问 Azure 订阅中的资源。 创建服务连接时,Azure DevOps 会创建 Microsoft Entra 服务主体对象。

  1. 登录到你的 Azure DevOps 组织 (https://dev.azure.com/<your-organization>),并选择你的项目。 将 <your-organization> 文本占位符替换为项目标识符。

  2. 选择“项目设置”>“服务连接”>“+ 新建服务连接”。

  3. 在“新建服务连接”窗格中,选择“Azure 资源管理器”,然后选择“下一步”。

  4. 依次选择“服务主体(自动)”身份验证方法、“下一步”。

  5. 输入服务连接详细信息,然后选择“保存”以创建服务连接。

    字段
    范围级别 订阅
    订阅 选择用于托管开发人员中心资源的 Azure 订阅。
    资源组 选择包含开发人员中心资源的资源组。
    服务连接名称 为服务连接输入唯一的名称。
    向所有管道授予访问权限 已选中。
  6. 从服务连接列表中,选择之前创建的连接,然后选择“管理服务主体”。 Azure 门户将在单独的浏览器标签页中打开,并显示服务主体详细信息。

  7. 在 Azure 门户中,复制“显示名称”值。 在下一步中,使用此值向服务主体授予运行负载测试的权限。

向服务连接授予对 ADE 项目的访问权限

Azure 部署环境使用基于角色的访问控制来授予对 ADE 资源执行特定活动的权限。 若要从 CI/CD 管道进行更改,请向服务主体授予部署环境用户角色。

  1. Azure 门户中,转到你的 ADE 项目。
  2. 选择“访问控制(IAM)”>“添加”>“添加角色分配”。
  3. 在“角色”选项卡中,选择作业功能角色列表中的“部署环境用户”。
  4. 在“成员”选项卡中,选择“选择成员”,然后使用之前复制的显示名称搜索服务主体。
  5. 选择服务主体,然后选择“选择”。
  6. 在“查看 + 分配”选项卡中,选择“查看 + 分配”,以添加角色分配。

现在可以使用 Azure Pipelines 工作流定义中的服务连接来访问 ADE 环境。

向帐户授予对 ADE 项目的访问权限

若要查看右其他用户创建的环境(包括服务连接),需要向帐户授予对 ADE 项目的读取访问权限。

  1. Azure 门户中,转到你的 ADE 项目。
  2. 选择“访问控制(IAM)”>“添加”>“添加角色分配”。
  3. 在“角色”选项卡中,选择作业功能角色列表中的“部署环境读取者”。
  4. 在“成员”选项卡中,选择“选择成员”,然后搜索自己的帐户。
  5. 从列表中选择帐户,然后选择“选择”。
  6. 在“查看 + 分配”选项卡中,选择“查看 + 分配”,以添加角色分配。

现在可以查看 Azure Pipelines 工作流创建的环境。

配置管道

编辑 Azure Repos 存储库中的 azure-pipelines.yml 文件以自定义管道。

在管道中,定义创建环境的步骤。 在此管道中,会将创建环境的步骤定义为作业,这是一系列按顺序作为单元运行的步骤。

若要自定义管道,请执行以下操作:

  • 指定要使用的服务连接,管道使用 Azure CLI 创建环境。
  • 使用内联脚本运行创建环境的 Azure CLI 命令。

Azure CLI 是一种命令行工具,会提供一组用于处理 Azure 资源的命令。 若要发现更多 Azure CLI 命令,请参阅 az devcenter

  1. 在 Azure DevOps 项目中,选择“存储库”>“文件”。

  2. 在“文件”窗格中,从 .ado 文件夹中选择 azure-pipelines.yml 文件。

  3. azure-pipelines.yml 文件中,使用以下代码编辑现有内容:

    • <AzureServiceConnectionName> 替换为之前创建的服务连接的名称。

    • Inline script 中,将以下每个占位符替换为适用于 Azure 环境的值:

      占位符
      <dev-center-name> 开发人员中心的名称。
      <project-name> 项目名称。
      <catalog-name> 目录的名称。
      <environment-definition-name> 不要更改。 定义使用的环境定义。
      <environment-type> 环境类型。
      <environment-name> 指定新环境的名称。
      <parameters> 不要更改。 引用定义环境的参数的 json 文件。
  4. 选择提交保存您所做的更改。

  5. 在“提交更改”窗格中,输入提交消息,然后选择“提交”。

使用管道创建环境

接下来,运行管道来创建 ADE 环境。

  1. 在你的 Azure DevOps 项目中,选择“管道”。
  2. 选择之前创建的管道,然后选择“运行管道”。
  3. 可以通过选择管道名称,然后选择“运行”来检查管道运行的进度。 选择运行以查看管道运行的详细信息。
  4. 还可以通过在 Azure 门户中选择开发人员中心、选择项目,然后选择“环境”来检查环境创建进度。

可以在持续集成 (CI) 和/或持续交付 (CD) 管道中的任何位置插入此作业。 Azure Pipelines 文档入门,详细了解如何创建和管理管道。

清理资源

完成本教程中创建的资源后,可以将其删除以避免产生费用。

使用以下命令删除在本教程中创建的环境:

az devcenter dev environment delete --dev-center <DevCenterName> --project-name <DevCenterProjectName> --name <DeploymentEnvironmentInstanceToCreateName> --yes