使用 Azure 开发人员 CLI 环境

Azure 开发人员 CLI (azd) 可帮助你使用自己的配置(例如开发、测试和生产)创建和管理 环境 。本文介绍如何创建和管理环境,以及如何将其用于 Bicep 基础结构文件。

创建环境

使用 azd env new 以下命令创建新环境:

azd env new <environment-name>

例如,若要创建开发环境,请执行以下作:

azd env new dev

运行命令(例如 azd upazd deploy)时, azd 会提示你为新环境选择 Azure 订阅和位置。 提示设置存储在新环境 .envconfig.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 命令,例如 provisiondeploy

了解默认环境

全局配置文件 .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 upazd 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 项目。

  1. azd AZURE_ENV_NAME在初始化项目时设置环境变量。

    AZURE_ENV_NAME=dev
    
  2. main.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 文件。

  3. 在 Bicep 模板中,定义环境名称的参数:

    param environmentName string
    
  4. 可以使用 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'
      }
    }
    

此方法通过将每个资源与其部署环境关联,帮助实现资源管理、成本跟踪和自动化。

后续步骤