管理环境变量

可以将环境变量配置为影响资源预配和部署到 Azure 的方式。 这在 CI/CD 工作流方案中运行 azd 时特别有用。

输入参数替换

可以在参数文件中引用环境变量(*.parameters.json 对于 Bicep, *.tfvars.json 对于 Terraform),作为预配的一部分。 遇到环境变量替换语法时, azd 会自动将引用替换为实际环境变量值集。 对于某些配置设置(使用“支持环境变量替换”记录的属性)和部署配置文件(例如部署清单)aks中的azure.yaml某些配置设置也会发生替换。

示例:输入参数替换 (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 映像后

用户提供的环境变量

用户提供的变量可以声明为基础结构输出参数(自动存储在其中 .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 部署或服务aks所需的containerapp属性。
SERVICE_<service>_ENDPOINTS 特定服务的终结点。 类型 array (bicep) / list-equivalent (terraform)。 ['endpoint1', 'endpoint2'] 设置特定服务的公共终结点将由 azd 用于显示。 默认情况下,azd 会发现给定主机的自动分配主机名,例如 *.azurewebsites.netappservice

启用演示模式

azd 包括一个演示模式,用于隐藏控制台输出中的订阅 ID。 对于要在公共设置中演示或演示 azd 命令的方案,此功能非常有用。

演示模式引入了环境变量: AZD_DEMO_MODE 若要启用演示模式,请运行:

export AZD_DEMO_MODE true

如果希望演示模式在重新启动后持久保存,还可以运行:

setx AZD_DEMO_MODE true

或在 PowerShell 中:

$env:AZD_DEMO_MODE="true"