將環境變數與工作區搭配使用

Terraform 使用環境變數來自訂其行為的各個層面。 環境變數是用來增加除錯的輸出詳細程度,或設定很少使用的執行時期參數。

例如,平行化是其中一個環境變數,其數字旗標範圍介於 1 and 256 之間,預設值為 10。 當您在執行時期執行 terraform planterraform apply 時,平行化用來配置在並行作業或非標準速率限制期間使用時發生錯誤的基礎架構提供者。

只能使用工作區更新 API 及傳遞 JSON 檔案的 CLI 來設定環境變數。 如需詳細資料,請參閱 工作區更新 CLI 指令

如果您的工作區是由 IBM Cloud 專案 服務建立,請參閱 使用 CLI 啟用 Terraform 日誌,作為設定環境變數的參考。

用法

傳遞 TF_CLI_ARGS 作為 env-vars

您可以在 Schematics 工作區中傳遞 Terraform 指令行引數 TF_CLI_ARGS 作為環境變數,例如 TF_CLI_ARGS_planTF_CLI_ARGS_apply,以自訂作業。

Terraform 會讀取這些環境變數並套用它們執行時期。 如需 Terraform 指令行引數的相關資訊,請參閱 TF_CLI_ARGS and TF_CLI_ARGS_name

設定平行化或 TF_LOGS 的範例

這裡顯示的範例可用來設定要傳遞至 Terraform 的任何環境變數。

建立時設定平行化

程式碼區塊是使用 Schematics 建立 API 並以環境變數傳遞平行化來建立工作區的範例有效負載。

{
    "name": "bb",
    "type": [
        "terraform_v1.4"
    ],
    "template_repo": {
        "url": "url"
    },
    "template_data": [
        {
        "folder": ".",
        "type": "terraform_v1.4",
        "variablestore": [
        {
          "value": "<val>",
          "name": "ibmcloud_api_key",
          "type": "string",
          "secure": true
        }
        ],
        "env_values": [
        {
          "TF_LOG": "debug"
        },
        {
          "TF_CLI_ARGS_apply": "-parallelism=20"
        },
        {
          "TF_CLI_ARGS_plan": "-parallelism=20"
        }
        ]
    }
    ]
}

建立之後設定平行化

有效負載中的範例 env_values 區塊,可使用 Schematics 工作區 更新 API來更新環境變數。 如需更詳細的範例,請參閱 更新工作區輸入變數 API。

"env_values": [
    {
        "TF_CLI_ARGS_plan": "-parallelism=20"
    },
    {
        "TF_LOG": "debug"
    }
    ]

設定型錄部署的平行化

環境變數只能在內容上線時設定。 請參閱「型錄」文件,以設定 TF_CLI_ARGS 環境變數。

Terraform 環境變數清單

IBM Cloud Schematics 支援下列環境變數以進行除錯。 如需特殊環境變數的相關資訊,請參閱 環境變數

支援的環境變數
變數 說明 用法
TF_LOG 出現在標準錯誤上的詳細日誌。 支援值為 TRACE、DEBUG、INFO、WARN 或 ERROR "TF_LOG": "TRACE"
TF_LOG_PROVIDER 如需對 Terraform 提供者問題進行除錯,請參閱 管理日誌輸出 "TF_LOG_PROVIDER": "TRACE"
TF_INPUT 停用輸入輸入值的提示的指令。 預設值為 false0 "TF_INPUT": "0"
TF_CLI_ARGSTF_CLI_ARGS_name TF_CLI_ARGS 指定指令行的其他引數。 這可讓您在雲端基礎架構環境中更輕鬆地進行自動化。 也可以在您自己的系統上修改 Terraform 的預設行為。TF_CLI_ARGSTF_CLI_ARGS_name 僅適用於非內容型錄。 "TF_CLI_ARGS_apply": "-parallelism=20"
TF_REGISTRY_DISCOVERY_RETRY 設定遠端登錄用戶端可以嘗試用戶端連線錯誤的要求重試次數上限。 "TF_REGISTRY_DISCOVERY_RETRY": "10"
TF_REGISTRY_CLIENT_TIMEOUT 設定以增加額外情況。 遠端登錄的預設值為 10 seconds "TF_REGISTRY_CLIENT_TIMEOUT": "15"
TF_IGNORE 輸出除錯訊息以顯示忽略的檔案及資料夾。 當您使用 .terraformignore 檔來除錯儲存庫時,這很有用。 預設值為「追蹤」。 "TF_IGNORE": "trace"
TF_PARALLELISM 在執行時期動作中讀取平行化環境變數,並僅針對內容型錄重設所有 Schematics 動作的平行化值。TF_PARALLELISM 僅適用於內容型錄。 "TF_PARALLELISM": "20"

支援其他環境變數來除錯 Terraform 提供者問題,請參閱 管理日誌輸出