全部產品
Search
文件中心

Resource Orchestration Service:概覽

更新時間:Nov 22, 2024

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代碼。您可以採用以下開發方式:

通過ROS使用Terraform的優勢

通過ROS使用Terraform相較直接使用Terraform CLI,增加了很多額外的能力,讓使用者擁有更好的體驗,具體有以下幾點:

  • 和ROS模板一致的控制台體驗

    ROS 控制台提供了一致的使用者體驗,與ROS模板的管理方式相同,使使用者能夠在一個集中化的平台上管理所有資源。

  • 支援參數/屬性的動態查詢和選擇

    ROS可以在模板參數配置中指定AssociationProperty以擷取所選地區下對應的資源,指定 AssociationPropertyMetadata 對不同參數添加篩選條件,以便在控制台動態選擇參數配置。

  • 根據模板詢價

    在部署前,ROS 可以根據您的 Terraform 模板自動計算並顯示預計的成本,協助您更好地進行預算規劃。

  • 產品開通和角色檢查

    • 自動檢查:ROS會自動檢查Terraform模板中涉及的產品是否已開通,所需的角色和許可權是否存在,確保部署前的準備工作完善。

    • 提示引導:如果發現未開通的產品或缺失的角色,ROS會提供明確的提示和引導,協助使用者快速完成必要的配置。

  • 風險檢查

    比如在刪除資源(如安全性群組)時,ROS會自動檢查可能帶來的風險,協助您避免潛在的問題。

    image

  • 支援模板版本管理和共用

    image

  • 標籤和資源群組傳遞

    可將標籤、資源群組一次性傳遞給模板中所有資源。

應用情境

建立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模板樣本