Terraform是一個開源的自動化Resource Orchestration Service工具。Resource Orchestration Service服務ROS(Resource Orchestration Service)為Terraform提供了託管的能力,您可以建立Terraform類型的模板和資源棧,編排阿里雲、AWS或Azure的資源。Terraform功能相容ROS API,您只需建立Terraform類型模板,即可調用ROS API實現相應功能。
使用限制
關於Terraform對ROS功能和資源的支援情況,請參見Terraform支援的功能和資源。
開發方式
建議您使用熟悉的開發方式編寫和測試Terraform代碼。您可以採用以下開發方式:
本地開發。
使用Terraform線上調試工具開發(僅支援阿里雲)。
(推薦)使用ROS建立Terraform類型資源棧,然後根據需求繼續建立或更新資源棧。更多資訊,請參見建立Terraform類型資源棧、繼續建立資源棧和更新資源棧。
通過ROS使用Terraform的優勢
通過ROS使用Terraform相較直接使用Terraform CLI,增加了很多額外的能力,讓使用者擁有更好的體驗,具體有以下幾點:
和ROS模板一致的控制台體驗
ROS 控制台提供了一致的使用者體驗,與ROS模板的管理方式相同,使使用者能夠在一個集中化的平台上管理所有資源。
支援參數/屬性的動態查詢和選擇
支援動態查詢參數可選值
支援同參數被多屬性引用的綜合查詢
ROS可以在模板參數配置中指定
AssociationProperty
以擷取所選地區下對應的資源,指定AssociationPropertyMetadata
對不同參數添加篩選條件,以便在控制台動態選擇參數配置。根據模板詢價
在部署前,ROS 可以根據您的 Terraform 模板自動計算並顯示預計的成本,協助您更好地進行預算規劃。
產品開通和角色檢查
自動檢查:ROS會自動檢查Terraform模板中涉及的產品是否已開通,所需的角色和許可權是否存在,確保部署前的準備工作完善。
提示引導:如果發現未開通的產品或缺失的角色,ROS會提供明確的提示和引導,協助使用者快速完成必要的配置。
風險檢查
比如在刪除資源(如安全性群組)時,ROS會自動檢查可能帶來的風險,協助您避免潛在的問題。
支援模板版本管理和共用
標籤和資源群組傳遞
可將標籤、資源群組一次性傳遞給模板中所有資源。
應用情境
建立Terraform類型資源棧
如果您希望在多個雲平台(例如AWS、Azure等)或非雲平台上建立並管理資源,Terraform可以協助您實現跨雲平台的Resource Orchestration Service和管理,您可以通過建立Terraform類型資源棧統一管理不同雲平台上的資源。具體操作,請參見建立Terraform類型資源棧。
建立Terraform類型模板
如果您希望在阿里雲平台上建立並管理多雲平台(AWS、Azure等)的資源,您可以在模板中定義多雲平台的資源以及資源之間的依賴關係,方便您進行多雲環境下的資源管理。具體操作,請參見建立Terraform類型模板。
模板結構
Terraform類型模板是Resource Orchestration Service服務ROS(Resource Orchestration Service)託管Terraform後支援的模板,用於編排阿里雲、AWS或Azure的資源。您可以在模板中定義資源、參數以及資源間的依賴關係。更多資訊,請參見Terraform類型模板結構。關於如何定義模板中的參數,請參見Terraform產品介紹。
開發建議
Resource Orchestration Service為Terraform提供了託管能力,當您瞭解了Terraform和Terraform託管方式,需要開發Terraform代碼並在ROS中使用時,可以採用以下建議。更多資訊,請參見Terraform代碼開發方式和建議。
細化變數定義。
建議指定Provider版本。
通過偽參數擷取資源棧資訊。
控制參數(變數)在控制台的輸入方式。
建議使用Aliyun::Terraform-v1.0及其以上版本。
使用Metadata控制參數(變數)在控制台的顯示。
把僅供本地使用的代碼放入以.debug.tf結尾的檔案。
不建議在.tf檔案中聲明阿里雲(alicloud)Provider。
不建議使用.tfvars檔案,而是通過ROS參數傳遞變數值。
Terraform模板樣本
關於Terraform的更多模板樣本,請參見Terraform模板樣本。