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類型資源棧
如果您希望在多個雲平台(例如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。
代碼的開發和建議
開發方式
建議您使用熟悉的開發方式編寫和測試Terraform代碼。您可以採用以下開發方式:
本地開發。
使用Terraform線上調試工具開發(僅支援阿里雲)。
使用ROS建立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模板樣本。