Terraform 是廣為接受的工具,可用來將基礎架構定義為程式碼。該工具的主要功能之一是 Terraform 輸出,它使用戶能夠從 Terraform 配置中提取並顯示有用的資訊。
本文深入探討 Terraform 輸出的重要性、其語法與使用方式,以及強化基礎架構編碼專案的最佳做法。
假設您正在管理複雜的基礎架構,並需要在各種資源或外部系統之間分享關鍵資料。Terraform 輸出功能可讓您做到這一點。此功能能輕鬆地從您的 Terraform 配置中擷取並顯示寶貴資訊,並可讓您在不同模組、工作空間和外部系統之間分享。
Terraform 輸出會揭露 Terraform 所管理資源的寶貴資訊。然後,Terraform 輸出指令列工具可讓您擷取並顯示這些輸出值,然後您的基礎架構或外部系統的其他元件便可使用。
擁有 Terraform 輸出功能有多項優勢,主要:
Terraform 輸出定義於使用輸出區塊的組態檔案中。以下是語法細分:
|
以下 AWS 實例範例顯示如何將 Terraform 輸出顯示為不同的資料類型:
字串輸出:
|
數字輸出:
|
列出輸出:
|
地圖輸出:
|
定義好之後,你就可以使用 Terraform 程式碼中的輸出名稱來參考輸出。以下是範例:
|
在本範例中,example_module 參考了名稱為 other_module_name 的另一個模組的 instance_id 輸出。如此可示範輸出如何促進模組之間的通訊與資料交換。
Terraform 輸出和資料來源似乎一目了然,但它們在基礎架構即程式碼(IaC)工作流程中具有不同的用途。以下是釐清差異的細項:
Terraform 輸出揭露了 Terraform 管理的資源資訊。輸出值來自 Terraform 配置中現有資源的屬性。輸出通常用於涉及以下情形的情況:
這類情況的範例包括擷取 EC2 執行個體的公用 IP 位址,並用來設定另一個 Terraform 模組的安全性群組規則。
資料來源從外部來源擷取資料。它與 API 或外掛程式互動,從雲端供應商、配置管理工具或其他外部系統擷取資訊。資料來源用於涉及以下情形的情況:
例如,在雲端供應商建立資源之前,使用資料來源擷取可用區域的清單。
簡而言之,使用輸出變數或資料來源的選擇取決於您需要的資料來源:
使用 Terraform 輸出時,您應該考量下列最佳作法:
以下是新增敏感屬性的範例:
|
Terraform 輸出使您能夠彌補靜態配置和動態基礎架構之間的差距。利用輸出功能,您可以簡化資料共享、自動化任務,並簡化驗證作業。
要充分發揮基礎架構的潛力,請考慮使用如 Portworx® 等 Pure Storage 解決方案,為您的 Terraform Kubernetes 部署啟用持久性儲存,以及 Pure Cloud Block Store 為您的雲端應用程式提供理想的儲存解決方案。