本文介绍如何在 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 文件中的字段:
领域 DESCRIPTION 姓名 环境定义的名称。 版本 环境定义的版本。 此字段可选。 摘要 环境定义的简要说明。 描述 环境定义的详细说明。 跑步者 模板使用的 IaC 框架。 该值可以是 ARM
或Bicep
。 还可以指定容器注册表中存储的模板的路径。templatePath IaC 模板文件的路径。 若要详细了解可以在 environment.yaml 中使用的选项和数据类型,请参阅 environment.yaml 中的参数和数据类型。
在开发人员中心,转到 目录,选择存储库,然后选择 “同步”。
服务会扫描存储库以查找新的环境定义。 同步存储库后,新的环境定义可用于开发人员中心中的所有项目。
使用容器映像部署环境
ADE 使用容器映像来定义如何部署部署环境的模板。 ADE 原生支持 ARM 和 Bicep,因此可以通过将模板文件(azuredeploy.json 和环境.yaml)添加到目录来配置环境部署 Azure 资源的环境定义。 然后,ADE 使用标准 ARM 或 Bicep 容器映像来创建部署环境。
可以为更高级的环境部署创建自定义容器映像。 例如,可以在部署前后运行脚本。 ADE 支持用于环境部署的自定义容器映像,这有助于部署 Pulumi 和 Terraform 等 IaC 框架。
ADE 团队提供可从 Microsoft 制品注册表(也称为“Microsoft 容器注册表”)访问的示例 ARM 和 Bicep 容器映像,以帮助你入门。
有关生成自定义容器映像的详细信息,请参阅:
指定 ARM 或 Bicep 示例容器映像
在 environment.yaml 文件中,运行程序属性指定要使用的图像的位置。 若要使用在 Microsoft 工件注册表上发布的示例映像,请使用下表中列出的相应标识符运行器。
IaC 框架 | 运行器值 |
---|---|
ARM | ARM |
二头肌 | 二头肌 |
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
资产 | DESCRIPTION |
---|---|
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 开发中心扩展。
更新环境定义
若要修改 Azure 部署环境中现有环境定义中的 Azure 资源的配置,请更新存储库中的关联模板文件。 使用特定环境定义创建新环境时,更改会立即反映。 重新部署与该环境定义关联的环境时,也会应用更新。
若要更新与模板相关的任何元数据,请修改 environment.yaml,然后 更新目录。
删除环境定义
若要删除现有环境定义,在存储库中删除包含模板文件和关联的环境 YAML 文件的子文件夹。 然后, 更新目录。
删除环境定义后,开发团队不能再使用特定的环境定义来部署新环境。 更新使用已删除环境定义的任何现有环境的环境定义引用。 如果未更新引用并重新部署环境,则会导致部署失败。