使用 Terraform 作為 Azure 開發人員 CLI 程式代碼工具的基礎結構
Azure 開發人員 CLI (azd
) 支援多個基礎結構即程式代碼 (IaC) 提供者,包括:
根據預設, azd
假設 Bicep 為 IaC 提供者。 請參閱比較 Terraform 和 Bicep 一文,以取得決定哪一個 IaC 提供者最適合您的項目的說明。
注意
Terraform 仍在 Beta 中。 在功能版本控制與發行策略頁面上深入瞭解 Alpha 和 Beta 功能支援
必要條件
- 安裝及設定 Terraform
- 安裝並登入 Azure CLI(v 2.38.0+)
- 檢閱您將在 Node.js 或 Python Terraform 範本中部署的架構圖表和 Azure 資源。
注意
雖然 azd
不依賴 Azure CLI 登入,但 Terraform 需要 Azure CLI。 請從 Terraform 的官方檔深入瞭解這項需求。
將 Terraform 設定為 IaC 提供者
azure.yaml
開啟專案根目錄中找到的檔案,並確定您有下列幾行可覆寫預設值,也就是 Bicep:infra: provider: terraform
.tf
將所有檔案新增至infra
專案根目錄中找到的目錄。執行
azd up
。
注意
請參閱這兩個 azd templates with Terraform as IaC Provider: Node.js 和 Terraform 和 Python 和 Terraform。
azd pipeline config
for Terraform
Terraform 會儲存受控基礎結構和設定的相關狀態。 由於此狀態檔案,您必須在執行 azd pipeline config
之前啟用遠端狀態,才能在 GitHub 中設定部署管線。
根據預設, azd
假設使用本機狀態檔案。 如果您在啟用遠端狀態之前執行 azd up
,則必須執行 azd down
並切換至遠端狀態檔案。
本機與遠端狀態
Terraform 會使用保存 的狀態 數據來追蹤其管理的資源。
開啟遠端狀態的案例:
- 允許共享狀態數據的存取權,並允許多人在該基礎結構資源集合上共同作業
- 避免公開狀態檔案中包含的敏感性資訊
- 減少因在本機儲存狀態而意外刪除的機會
啟用遠端狀態
請務必 設定遠端狀態記憶體帳戶。
在資料夾中新增名為
provider.conf.json
infra
的新檔案。{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
在資料夾中找到的
infra
更新provider.tf
,將後端設定為遠端# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
執行
azd env set <key> <value>
以在檔案中新增組.env
態。 例如:azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
根據您的一般工作流程執行下一個
azd
命令。 偵測到遠端狀態時,azd
使用已設定的後端組態初始化 Terraform。若要與小組成員共用環境,請確定他們執行
azd env refresh -e <environmentName>
以重新整理本機系統中的環境設定,然後執行步驟 4 以在檔案中新增組.env
態。
另請參閱
- 深入瞭解 Terraform 對 Azure CLI 的相依性。
- 如需遠端狀態的詳細資訊,請參閱將 Terraform 狀態儲存在 Azure 儲存體。
- 範本: 在 Azure 上使用 Node.js API 和 MongoDB 的 React Web 應用程式