Azure 開發人員 CLI (azd) 可讓您管理專案的多個部署環境,以將設定分開進行開發、測試和生產環境。 本文說明如何使用環境來管理開發和部署程式的基本概念。
什麼是環境?
Azure 開發人員 CLI (azd) 中的環境是應用程式部署的一組具名組態,例如開發、測試或生產。不同的環境可以使用不同的值來設定。 環境有數個重要用途:
- 隔離:將開發、測試和生產部署分開。
- 組態管理:維護每個環境的不同設定。
- 共同作業:讓小組成員能夠使用自己的環境。
- 資源組織:依環境分組和布建 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]
此結構的主要元件包括:
-
.azuredirectory:所有環境組態的根目錄。 根據預設,.gitignore檔案會從原始檔控制中排除。 -
環境特定目錄:以您的環境命名的目錄,例如
dev、test、prod。 -
.envfile:包含您的應用程式和部署期間所使用的環境特定變數。 -
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
常見的環境變數包括:
| 變數 | 說明 |
|---|---|
AZURE_ENV_NAME |
目前環境的名稱 |
AZURE_LOCATION |
部署資源的 Azure 區域 |
AZURE_SUBSCRIPTION_ID |
用於此環境的 Azure 訂用帳戶標識碼 |
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 環境變數會針對某些作業覆寫同名的系統環境變數。