使用 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文件从源代码管理中排除。 -
特定于环境的目录:以环境命名的目录,例如
dev,testprod。 -
.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 环境变量会替代某些作同名的系统环境变量。