你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

添加和配置环境定义

本文介绍如何在 Azure 部署环境目录中添加、更新或删除环境定义。 它还介绍如何引用容器映像来部署环境。

在 Azure 部署环境中,你使用目录为你的开发团队提供一组特选的预定义基础结构即代码 (IaC) 模板,我们称之为环境定义

环境定义至少包含两个文件:

  • 来自 IaC 框架的模板。 例如:
    • Azure 资源管理器 (ARM) 模板可能使用名为 azuredeploy.json 的文件。
    • Bicep 模板可使用名为 main.bicep 的文件。
    • Terraform 模板可使用名为 azuredeploy.tf 的文件。
  • 一个配置文件,提供有关模板的元数据。 该文件应命名为 environment.yaml

开发团队使用目录中提供的环境定义在 Azure 中部署环境。

Microsoft 提供示例目录,你可以将其用作存储库。 你也可以使用自己的专用存储库,或者对示例目录中的环境定义创建分支并进行自定义。

在向开发人员中心添加目录后,该服务将扫描指定的文件夹路径,以确定包含模板和相关环境文件的文件夹。 指定的文件夹路径应该是包含环境定义文件的子文件夹的文件夹。

添加环境定义

若要将环境定义添加到 Azure 部署环境 (ADE) 中的目录,请首先将文件添加到存储库。 然后可以将开发人员中心目录与更新的存储库同步。

添加环境定义:

  1. GitHubAzure DevOps 存储库的存储库文件夹路径中创建子文件夹。

  2. 将两个文件添加到新建的存储库子文件夹:

    • 一个 IaC 模板文件。

    • 一个 YAML 文件形式的环境。

      environment.yaml 文件包含与 IaC 模板相关的元数据

      以下脚本是 ARM 模板的 environment.yaml 文件的内容示例:

          name: WebApp
          version: 1.0.0
          summary: Azure Web App Environment
          description: Deploys a web app in Azure without a datastore
          runner: ARM
          templatePath: azuredeploy.json
      

      使用下表了解 environment.yaml 文件中的字段:

      字段 描述
      name 环境定义的名称。
      版本 环境定义的版本。 此字段可选。
      summary 环境定义的简要说明。
      description 环境定义的详细说明。
      runner 模板使用的 IaC 框架。 值可为 ARMBicep。 还可以指定容器注册表中存储的模板的路径。
      templatePath IaC 模板文件的路径。

      若要详细了解可在 environment.yaml 中使用的选项和数据类型,请参阅 environment.yaml 中的参数和数据类型

  3. 在开发人员中心转到“目录”,选择存储库,然后选择“同步”

    展示如何同步目录的屏幕截图。

该服务会扫描存储库以查找新的环境定义。 同步存储库后,开发人员中心中的所有项目都可以使用新的环境定义。

使用容器映像部署环境

ADE 使用容器映像来定义如何部署部署环境的模板。 ADE 本机支持 ARM 和 Bicep,因此可以通过将模板文件 (azuredeploy.json and environment.yaml) 添加到目录来配置为部署环境部署 Azure 资源的环境定义。 然后,ADE 使用标准 ARM 或 Bicep 容器映像来创建部署环境。

可以为更高级的环境部署创建自定义容器映像。 例如,可以在部署前后运行脚本。 ADE 支持在环境部署中使用自定义容器映像,这有助于部署 Pulumi 和 Terraform 等 IaC 框架。

ADE 团队提供了可通过 Microsoft 工件注册表(也称为 Microsoft 容器注册表)进行访问的示例 ARM 和 Bicep 容器映像来帮助你入门。

有关生成自定义容器映像的详细信息,请参阅:

指定 ARM 或 Bicep 示例容器映像

在 environment.yaml 文件中,运行器属性指定要使用的映像的位置。 若要使用在 Microsoft 工件注册表上发布的示例映像,请使用下表中列出的相应标识符运行器。

IaC 框架 运行器值
ARM ARM
Bicep Bicep
Terraform 无示例映像。 改用自定义容器映像。

以下示例演示了引用示例 Bicep 容器映像的运行器:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

指定自定义容器映像

若要使用存储在存储库中的自定义容器映像,请使用 environment.yaml 文件中的以下运行器格式:

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}”`

编辑运行器值以引用存储库和自定义映像,如以下示例所示:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
    templatePath: azuredeploy.json
properties 说明
YOUR_REGISTRY 存储自定义映像的注册表。
YOUR_REPOSITORY 你在该注册表上的存储库。
YOUR_TAG 版本号等标记。

指定环境定义的参数

可为环境定义指定参数,以允许开发人员自定义其环境。

参数在 environment.yaml 文件中定义。

以下脚本是 ARM 模板的 environment.yaml 文件的示例,其中包含两个参数,即 locationname

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

若要详细了解可在 environment.yaml 中使用的参数及其数据类型,请参阅 environment.yaml 中的参数和数据类型

开发人员可以通过开发人员门户为其环境提供特定参数的值。

开发人员门户的屏幕截图,显示“参数”窗格。

开发人员还可以通过 CLI 为其环境提供特定参数的值。

az devcenter dev environment create --environment-definition-name
                                    --catalog-name
                                    --dev-center
                                    --environment-name
                                    --environment-type
                                    --project
                                    [--description]
                                    [--no-wait]
                                    [--parameters]
                                    [--tags]
                                    [--user]
                                    [--user-id]

若要详细了解 az devcenter dev environment create 命令,请参阅 Azure CLI devcenter 扩展

更新环境定义

若要修改 Azure 部署环境的现有环境定义中 Azure 资源的配置,请更新存储库中关联的模板文件。 通过使用特定环境定义来创建新环境时,更改会立即反映出来。 重新部署与该环境定义关联的环境时,也会应用该更新。

若要更新与模板相关的任何元数据,请修改 environment.yaml 并更新目录

删除环境定义

若要删除现有环境定义,请在存储库中删除包含模板文件和关联的环境 YAML 文件的子文件夹。 然后更新目录

删除环境定义后,开发团队将无法再使用该特定环境定义来部署新环境。 更新使用已删除环境定义的任何现有环境的环境定义引用。 如果未更新引用并重新部署环境,则会导致部署失败。