Share via


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

Azure 開發人員 CLI (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

注意

請查看這兩個 azd templates 搭配 Terraform 作為 IaC 提供者: 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. 在資料夾中找到的infra更新provider.tf,將後端設定為遠端

    # 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 態。

另請參閱

下一步