你当前正在访问 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) 中的目录,请首先将文件添加到存储库。 然后可以将开发人员中心目录与更新的存储库同步。
添加环境定义:
在 GitHub 或 Azure DevOps 存储库的存储库文件夹路径中创建子文件夹。
将两个文件添加到新建的存储库子文件夹:
一个 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 框架。 值可为 ARM
或Bicep
。 还可以指定容器注册表中存储的模板的路径。templatePath IaC 模板文件的路径。 若要详细了解可在 environment.yaml 中使用的选项和数据类型,请参阅 environment.yaml 中的参数和数据类型。
在开发人员中心转到“目录”,选择存储库,然后选择“同步”。
该服务会扫描存储库以查找新的环境定义。 同步存储库后,开发人员中心中的所有项目都可以使用新的环境定义。
使用容器映像部署环境
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 文件的示例,其中包含两个参数,即 location
和 name
:
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 文件的子文件夹。 然后更新目录。
删除环境定义后,开发团队将无法再使用该特定环境定义来部署新环境。 更新使用已删除环境定义的任何现有环境的环境定义引用。 如果未更新引用并重新部署环境,则会导致部署失败。