Azure 开发人员 CLI 环境概述

使用 Azure 开发人员 CLI(azd)可以管理项目的多个部署环境,使配置与开发、测试和生产分开。 本文介绍了有关如何使用环境来管理开发和部署过程的基本概念。

什么是环境?

Azure 开发人员 CLI(azd)中的环境是用于部署应用的一组命名配置,例如开发、测试或 prod。可以使用不同的值配置不同的环境。 环境具有多个重要用途:

  • 隔离:使开发、测试和生产部署保持独立。
  • 配置管理:为每个环境维护不同的设置。
  • 协作:使团队成员能够使用自己的环境。
  • 资源组织:按环境对 Azure 资源进行分组和预配。
  • 可重现性:确保跨不同阶段的一致部署。

每个环境都有自己的 Azure 资源组和配置设置。 此环境隔离有助于防止一个环境中的更改影响其他环境。

环境结构和配置

Azure 开发人员 CLI (azd) 环境位于项目中的目录结构中:

├── .azure                          [Created when you run azd init or azd up]
│   ├── <environment-name-1>        [Directory for environment-specific configurations]
│   │   ├── .env                    [Environment variables for this environment]
│   │   └── config.json             [Additional configuration parameters for this environment]
│   ├── <environment-name-2>        [Another environment]
│   │   ├── .env                    
│   │   └── config.json
│   └── config.json                 [Global azd configuration]

此结构的关键组件包括:

  • .azure 目录:所有环境配置的根目录。 默认情况下,由 .gitignore 文件从源代码管理中排除。
  • 特定于环境的目录:以环境命名的目录,例如devtestprod
  • .env 文件:包含应用程序和部署期间使用的特定于环境的变量。
  • config.json:用于驱动影响 azd 命令行为和功能的设置。 此文件不适合最终用户直接使用。

环境名称

环境命名通常遵循以下模式:

  • 团队项目: <project-name-[dev/int/prod]>
  • 个人项目: <personal-unique-alias-[dev/int/prod]>

这些命名约定不是由 azd 用户强制执行的,可由用户配置。

环境变量

Azure 开发人员 CLI 环境变量 提供了一种方法来存储影响环境并可能有所不同的配置设置。 运行 Azure 开发人员 CLI 命令时,这些变量用于:

  • 配置应用程序设置,例如 Azure 服务的终结点。
  • 定义基础结构参数以影响预配过程。

该文件 .env 包含以下标准格式的变量:

AZURE_ENV_NAME=dev
AZURE_LOCATION=eastus
AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
AZURE_RESOURCE_GROUP=rg-dev-12345
SERVICE_WEB_HOSTNAME=web-dev-12345.azurewebsites.net
SERVICE_API_HOSTNAME=api-dev-12345.azurewebsites.net

常见环境变量包括:

变量 DESCRIPTION
AZURE_ENV_NAME 当前环境的名称
AZURE_LOCATION 部署资源的 Azure 区域
AZURE_SUBSCRIPTION_ID 用于此环境的 Azure 订阅的 ID
AZURE_RESOURCE_GROUP 此环境的资源组的名称

小窍门

有关其他常见环境变量和服务特定的示例,请访问 环境变量 文档。

使用环境变量时:

  • 避免将 .env 文件提交到源代码管理。 如果需要持久保存或共享环境配置,用户应使用 远程环境
  • 跨环境使用一致的命名。
  • azd env set使用命令安全地更新变量。

警告

切勿将机密存储在 Azure 开发人员 CLI .env 文件中。 这些文件可以轻松共享或复制到未经授权的位置,或签入源代码管理。 将 Azure Key Vault 或 Azure 基于角色的访问控制(RBAC)等服务用于受保护或无机密的解决方案。

比较其他框架环境

许多编程框架和工具(如 Node.js、Django 或 React)使用 .env 文件进行配置。 虽然 Azure 开发人员 CLI (azd) 也使用 .env 文件,但存在重要差异:

概念 Azure 开发人员 CLI .env 框架 .env 文件
位置 存储在 .azure/<environment-name>/.env 通常存储在项目根目录中
环境支持 支持多个用户定义的环境(开发、测试、生产) 通常需要手动文件切换或命名约定 (.env.development.env.production
加载机制 azd 命令自动加载 通常需要在应用程序代码或生成脚本中显式加载
集成 与 Azure 服务和资源预配深度集成 常规用途配置,而不是特定于 Azure 的配置
变量管理 通过 azd env 命令进行管理 通常手动编辑或通过自定义脚本进行编辑

尽管这两种方法都提供类似的用途,但 Azure 开发人员 CLI .env 的方法增加了用于管理多个部署环境和 Azure 资源的结构和工具。

注释

如果项目已使用特定于 .env 框架的文件,则可以保留这两个配置系统,而不会发生冲突。 azd 环境变量会替代某些作同名的系统环境变量。

后续步骤