管理环境变量

环境变量会影响资源预配和部署到 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-valuesazd 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 部署 containerappaks 服务所需的属性。
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"