管理环境变量
环境变量会影响资源预配和部署到 Azure 的方式。 这在 CI/CD 工作流方案中运行 azd 时特别有用。
输入参数替换
作为预配的一部分,可以在参数文件中引用环境变量(对于 Bicep,*.parameters.json
;对于 Terraform,*.tfvars.json
)。 遇到环境变量替换语法时,azd
会自动将引用替换为实际环境变量值集。 在 azure.yaml
(用“支持环境变量替换”记录的属性)和部署配置文件(如 aks
的部署清单)中,某些配置设置也会发生替换。
输入参数替换示例 (Bicep)
假设已设置环境变量 AZURE_LOCATION
:
export AZURE_LOCATION=westus3
$env:AZURE_LOCATION='westus3'
在 main.parameters.json
文件中,可以使用以下语法引用 AZURE_LOCATION
并允许进行环境替换:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"value": "${AZURE_LOCATION}"
}
}
}
环境特定 .env
文件
基础结构预配的输出作为环境变量自动存储在位于 .azure/<environment name>/.env
下的 .env
文件中。 此设置允许本地应用程序或部署脚本在需要时使用存储在 .env
文件中的变量来引用 Azure 托管的资源。 若要查看这些输出,请运行 azd env get-values
或 azd env get-values --output json
,以获取 JSON 输出。
azd
提供的环境变量
以下是 azd
自动提供的变量:
名称 | 说明 | 示例 | 可用时 |
---|---|---|---|
AZURE_ENV_NAME |
正在使用的环境的名称。 | todo-app-dev |
创建环境时(例如,运行 azd init 或 azd env new 后)。 |
AZURE_LOCATION |
正在使用的环境的位置。 | eastus2 |
就在首次预配环境之前。 |
AZURE_PRINCIPAL_ID |
正在运行的用户/服务主体。 | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
在预配期间自动确定(临时)。 |
AZURE_SUBSCRIPTION_ID |
目标订阅。 | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
就在首次预配环境之前。 |
SERVICE_<service>_IMAGE_NAME |
发布到容器应用服务的 Azure 容器注册表的容器映像的完整名称。 | todoapp/web-dev:azdev-deploy-1664988805 |
成功发布 containerapp 映像后 |
用户提供的环境变量
用户提供的变量可以声明为 main.bicep
文件中的基础结构输出参数(自动存储在 .env
中),也可以由用户在环境中直接设置 (azd env set <key> <value>
)。 azd
以配置的形式读取值,并执行不同的操作。
名称 | 说明 | 示例 | 效果 |
---|---|---|---|
AZURE_AKS_CLUSTER_NAME |
目标 Azure Kubernetes 服务群集的名称。 | aks-my-cluster |
部署 aks 服务所需的属性。 |
AZURE_RESOURCE_GROUP |
要针对的特定资源组。 字符串类型。 | rg-todo-dev |
azd 不会执行资源组发现,而是引用此资源组。 azd 也不控制创作的 IaC 配置文件,因此可能需要更改 IaC 文件。 |
AZURE_CONTAINER_REGISTRY_ENDPOINT |
用于发布 docker 映像的 Azure 容器注册表终结点。 字符串类型。 | myexampleacr.azurecr.io |
部署 containerapp 或 aks 服务所需的属性。 |
SERVICE_<service>_ENDPOINTS |
特定服务的终结点。 类型 array (bicep) / list-equivalent (terraform)。 |
['endpoint1', 'endpoint2'] |
设置特定服务的公共终结点将由 azd 用于显示。 默认情况下,azd 会发现给定主机的自动分配主机名,例如 *.azurewebsites.net 用于 appservice 。 |
启用演示模式
azd
包括一个演示模式,用于隐藏控制台输出中的订阅 ID。 对于要在公共设置中演示或演示 azd
命令的方案,此功能非常有用。
演示模式引入了环境变量:AZD_DEMO_MODE
。 若要启用演示模式,请运行:
export AZD_DEMO_MODE true
如果希望演示模式在重新启动后持久保存,还可以运行:
setx AZD_DEMO_MODE true
或在 PowerShell 中:
$env:AZD_DEMO_MODE="true"