Azure 开发人员 CLI (azd) 可帮助你使用自己的配置(例如开发、测试和生产)创建和管理 环境 。本文介绍如何创建和管理环境,以及如何将其用于 Bicep 基础结构文件。
创建环境
使用 azd env new 以下命令创建新环境:
azd env new <environment-name>
例如,若要创建开发环境,请执行以下作:
azd env new dev
运行命令(例如 azd up 或 azd deploy)时, azd 会提示你为新环境选择 Azure 订阅和位置。 提示设置存储在新环境 .env 或 config.json 文件中。
还可以直接在命令中指定订阅和位置:
azd env new prod --subscription "My Production Subscription" --location eastus2
列出环境
若要查看项目的所有可用环境,请使用:
azd env list
此命令显示创建的所有环境,突出显示当前活动环境:
NAME DEFAULT LOCAL REMOTE
dev true true false
test false true false
prod false true false
在环境之间切换
若要切换到其他环境,请使用 azd env select 以下命令:
azd env select <environment-name>
例如,切换到生产环境:
azd env select prod
注释
此命令将更改活动环境,这会影响后续 azd 命令,例如 provision 或 deploy。
了解默认环境
全局配置文件 .azure/config.json 跟踪当前选定的环境。 运行 azd init 且尚不存在环境时, azd 会自动创建第一个环境并将其设置为默认值。 如果已有一个或多个环境并运行 azd env new <name>, azd 系统会提示你选择是否将新环境设为默认值。 如果拒绝,则会创建新环境,但当前选择保持不变。
可以使用标志暂时替代单个命令 --environment 的默认环境。 使用此标志不会更改将来命令的默认值。
刷新环境设置
可以使用命令刷新本地环境变量 azd env refresh 。 此命令查找应用的最新 Azure 部署,按名称检索环境变量值,然后使用所选环境的最新值更新本地 .env 文件。 例如,如果同时预配了一个和prod一个dev版本,并且当前已dev选择环境,它将检索该部署中的最新输出以填充 .env 文件。
azd env refresh
注释
该 azd env refresh 命令不会重新部署资源。 它只会更新本地环境配置以匹配 Azure 中的当前状态。
刷新环境在以下情况下非常有用:
- 你希望确保本地
.env文件反映基础结构的最新输出(如连接字符串、终结点等)。 - 在团队成员更新环境后,需要同步环境变量。
如果其他团队成员对环境配置进行了更改,或者通过 Azure 门户进行更改,则可以使用以下方法刷新本地环境设置:
在特定环境中运行命令
可以在特定环境中运行许多 azd 命令,而无需使用 --environment 或 -e 标志更改活动环境:
azd up --environment dev
此命令在dev环境中运行up工作流(预配和部署),而无需更改活动环境。
或者,可以先切换到预期环境:
azd env select test
azd up
注释
Teams 应考虑通过 azd pipeline config 命令使用 CICD 管道,而不是使用命令(例如 azd up 或 azd provision)直接部署。
删除环境资源
若要删除特定环境的 Azure 资源,请使用 azd down 以下命令:
azd down <environment-name>
注释
目前无法使用命令直接删除或重命名 azd 环境。 如果需要重命名环境:
- 用于
azd down删除环境资源。 - 运行
azd env new <new-name>以创建新环境。 - 从中手动删除旧
.env文件夹.azure。
在基础结构文件中使用环境名称
可以使用 AZURE_ENV_NAME 环境文件中的 .env 变量来自定义 Bicep 中的基础结构部署。 这对于基于当前环境命名、标记或配置资源非常有用。
注释
请访问 “使用环境变量 ”详细了解如何使用环境变量配置 Azure 开发人员 CLI 项目。
azdAZURE_ENV_NAME在初始化项目时设置环境变量。AZURE_ENV_NAME=devmain.parameters.json在文件中,引用环境变量,以便azd替换其值:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "environmentName": { "value": "${AZURE_ENV_NAME}" } } }使用此方法进行部署
azd时,该值.env将从中main.parameters.json传递到 Bicep 文件。在 Bicep 模板中,定义环境名称的参数:
param environmentName string可以使用
environmentName参数标记资源,以便轻松识别资源所属的环境:param environmentName string resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = { name: 'mystorage${uniqueString(resourceGroup().id)}' location: resourceGroup().location sku: { name: 'Standard_LRS' } kind: 'StorageV2' tags: { Environment: environmentName Project: 'myproject' } }
此方法通过将每个资源与其部署环境关联,帮助实现资源管理、成本跟踪和自动化。