共用方式為


使用 Terraform 作為 Azure 開發人員 CLI 程式代碼工具的基礎結構

Azure 開發者命令列工具(azd)支援多個基礎設施即代碼(IaC)提供者,包括:

根據預設, azd 假設 Bicep 為 IaC 提供者。 請參閱比較 Terraform 和 Bicep 一文,以幫助您決定哪一個 IaC 提供者最適合您的項目。

注意

Terraform 仍在 Beta 中。 在功能版本控制與發行策略頁面上深入瞭解 Alpha 和 Beta 功能支援

必要條件

注意

雖然 azd 不依賴 Azure CLI 登入,但 Terraform 需要 Azure CLI。 請從 Terraform 的官方檔深入瞭解這項需求。

將 Terraform 設定為 IaC 提供者

  1. azure.yaml開啟專案根目錄中找到的檔案,並確定您有下列幾行可覆寫預設值,也就是 Bicep:

    infra:
      provider: terraform
    
  2. .tf將所有檔案放入infra專案根目錄。

  3. 執行 azd up

注意

請參閱這兩個以 Terraform 作為 IaC 提供者的 azd 範本:Node.js 和 TerraformPython 和 Terraform

azd pipeline config for Terraform

Terraform 會儲存受控基礎結構和設定的相關狀態。 由於此狀態檔案,您必須在執行 之前azd pipeline config,才能在 GitHub 中設定部署管線。

根據預設, azd 假設使用本機狀態檔案。 如果您在啟用遠端狀態之前執行 azd up ,則必須執行 azd down 並切換至遠端狀態檔案。

本機與遠端狀態

Terraform 會使用保存 的狀態 數據來追蹤其管理的資源。

開啟遠端狀態的案例:

  • 允許共享狀態數據的存取權,並允許多人在該基礎結構資源集合上共同作業
  • 避免公開狀態檔案中包含的敏感性資訊
  • 為了減少因本地儲存狀態而導致意外刪除的可能性

啟用遠端狀態

  1. 請務必 設定遠端狀態記憶體帳戶

  2. 在資料夾中新增名為 provider.conf.jsoninfra 的新檔案。

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. 更新位於provider.tf資料夾中的infra,將後端設為遠端。

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. 執行 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
    
  5. 根據您的一般工作流程執行下一個 azd 命令。 偵測到遠端狀態時, azd 使用已設定的後端組態初始化 Terraform。

  6. 若要與隊友共用環境,請確定他們執行 azd env refresh -e <environmentName> 以重新整理本機系統中的環境設定,然後執行步驟 4 以在 .env 檔案中新增設定。

另請參閱

下一步