全部產品
Search
文件中心

Resource Orchestration Service:ValidateTemplate - 驗證將要建立資源棧的模板

更新時間:Jun 04, 2026

通過指定模板地址或模板內容驗證將要建立資源棧的模板。

介面說明

該介面不涉及使用者資料,只對模板進行校正,無需進行 RAM 鑒權。

本文將提供一個樣本,驗證將要建立資源棧的模板,包含模板主體的檔案的位置TemplateURLoss://ros/template/demo

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

當前API暫無授權資訊透出。

請求參數

名稱

類型

必填

描述

樣本值

TemplateURL

string

包含模板主體的檔案的位置。URL 必須指向位於 HTTP Web 服務器或阿里雲 OSS 儲存空間(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大為 524,288 個位元組。

說明

如果 OSS 地區未指定,預設與介面參數 RegionId 相同。

您可以指定 TemplateBody 或 TemplateURL 參數,但不能同時指定。
URL 的最大長度為:1024 個位元組。

oss://ros/template/demo

RegionId

string

資源棧模板所屬的地區 ID。您可以調用 DescribeRegions 查看最新的阿里雲地區列表。

cn-hangzhou

TemplateBody

string

模板主體的結構。長度為 1~524,288 個位元組。
如果長度較大,建議通過 HTTP POST+Body Param 的方式,將參數放在請求體中進行傳遞,避免 URL 過長而導致請求失敗。
您可以指定 TemplateBody 或 TemplateURL 參數,但不能同時指定。

{"ROSTemplateFormatVersion":"2015-09-01"}

ClientToken

string

保證請求的等冪性。該值由用戶端產生,並且必須是全域唯一的。

長度不超過 64 個字元,可包含英文字母、數字、短劃線(-)和底線(_)。

更多資訊,請參見如何保證等冪性

123e4567-e89b-12d3-a456-42665544****

ValidationOption

string

是否對模板開啟額外校正。取值:

  • None(預設值):不開啟額外校正。

  • EnableTerraformValidation:對於 Terraform 類型模板,使用 Terraform CLI 的terraform validate命令開啟額外校正。

  • EnableFastTerraformValidation:對於 Terraform 類型模板,使用一種類似於 Terraform CLI 的terraform validate命令開啟額外校正。

說明

EnableFastTerraformValidation 與 EnableTerraformValidation 相比速度較快,但校正完整性稍有不足。

None

UpdateInfoOptions

array

更新資訊選項列表。列表最大長度為 2。

string

更新資訊選項,用於控制資源棧更新的相關資訊的產生。取值:

  • Disabled:不產生資源棧更新的相關資訊。

  • ConsiderCondition:產生資源棧更新的相關資訊時,考慮條件的影響。建議使用該選項。否則,條件會進行計算,計算時涉及的參數的取值為參數的預設值或 null。

  • EnableReplacement:產生資源棧更新的相關資訊時,考慮替換更新的影響。

枚舉值:

  • ConsiderCondition :

    ConsiderCondition

  • EnableReplacement :

    EnableReplacement

  • Disabled :

    Disabled

ConsiderCondition

關於公用請求參數的詳情,請參見公用參數

返回參數

名稱

類型

描述

樣本值

object

Description

string

描述此資源棧模板的相關資訊。

No description

Parameters

array<object>

輸入參數列表。

object

輸入參數。
輸入參數中,定義了通過此模板建立資源棧時需要指定的參數,這些參數用來指定每次資源棧建立的細節,例如:使用者名稱、密碼、環境相關的 ECS 規格等。

[{"Description": "", "Label": "param_integer", "NoEcho": "false", "ParameterKey": "param_integer", "Type": "Number"},{ "Description": "", "Label": "param_float", "NoEcho": "false", "ParameterKey": "param_float", "Type": "Number"}]

RequestId

string

請求 ID。

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

Outputs

array<object>

模板輸出資料行表。

object

OutputKey

string

模板輸出名稱。

instance_id

Description

string

模板輸出描述。

The instance ID of my ECS.

Label

string

模板輸出別名。

Instance ID

ResourceTypes

object

模板中用到的資源類型資訊。

Resources

array

普通資源類型列表(已去重)。

string

普通資源類型。

ALIYUN::ECS::InstanceGroup

DataSources

array

資料來源資源類型列表(已去重)。

string

資料來源資源類型。

DATASOURCE::VPC::Vpcs

Resources

array<object>

模板中定義的普通資源清單。

說明
  • 對於 ROS 模板,資源定義中包含Count欄位的資源不會展開。

  • 對於 Terraform 模板,資源定義中包含countfor_each的資源不會展開。

object

ResourceType

string

普通資源類型。

ALIYUN::ECS::InstanceGroup

ResourcePath

string

普通資源路徑。通常與資源名稱相同。

server

LogicalResourceIdPattern

string

普通資源邏輯 ID 的字串匹配模式。

對於 ROS 模板,存在如下兩種情況:

  • 資源定義中不包含Count欄位:假定模板中定義的資源名稱為server,則該欄位取值為server,對應的ResourcePathserver

  • 資源定義中包含Count欄位:假定模板中定義的資源名稱為server,則該欄位取值為server[*],對應的ResourcePathserver

對於 Terraform 模板中的資源和模組,存在如下兩種情況:

  • 定義中不包含countfor_each:假定名稱為server,則該欄位取值為server,對應的ResourcePathserver

  • 定義中包含countfor_each:假定名稱為server,則該欄位取值為server[*],對應的ResourcePathserver

Terraform 模板樣本如下:

  • 頂層模組中的資源:
    • server:未使用countfor_each,對應的ResourcePathserver

    • server[*]:使用了countfor_each,對應的ResourcePathserver

  • 子模組中的資源:
    • app.serverapp模組未使用countfor_eachserver資源未使用countfor_each,對應的ResourcePathapp.server

    • app.server[*]app模組未使用countfor_eachserver資源使用了countfor_each,對應的ResourcePathapp.server

    • app[*].serverapp模組使用了countfor_eachserver資源未使用countfor_each,對應的ResourcePathapp.server

    • app[*].server[*]app模組使用了countfor_eachserver資源使用了countfor_each,對應的ResourcePathapp.server

    • app.app_group[*].serverapp模組未使用countfor_eachapp_group模組使用了countfor_eachapp_group模組是app模組的子模組),server資源未使用countfor_each,對應的ResourcePathapp.app_group.server

server

UpdateInfo

object

資源棧更新的相關資訊。若 UpdateInfoOptions 包含 Disabled,則不返回。

ParametersAllowedToBeModified

array

允許修改的參數的列表。

string

允許修改的參數。更新資源棧時,若模板保持不變,僅修改參數取值不會引發校正錯誤。

param1

ParametersCauseInterruptionIfModified

array

一定會引發資源中斷的參數的列表。

說明
  • 目前僅支援少量資源類型。

  • 僅適用於更新 ROS 類型資源棧。

string

一定會引發資源中斷的參數。更新資源棧時,若模板保持不變,僅修改參數取值一定會引發資源中斷。

param1

ParametersConditionallyAllowedToBeModified

array

可能允許修改的參數的列表。

string

可能允許修改的參數。更新資源棧時,若模板保持不變,僅修改參數取值,修改該參數是否引發校正錯誤,取決於參數的取值。

param2

ParametersConditionallyCauseInterruptionIfModified

array

可能會引發資源中斷的參數的列表。

說明
  • 目前僅支援少量資源類型。

  • 僅適用於更新 ROS 類型資源棧。

string

可能會引發資源中斷的參數。更新資源棧時,若模板保持不變,僅修改參數取值可能會引發資源中斷,取決於參數的取值和資源的更新行為。

param2

ParametersNotAllowedToBeModified

array

不允許修改的參數的列表。

string

不允許修改的參數。更新資源棧時,若模板保持不變,僅修改參數取值一定會引發校正錯誤。

param3

ParametersUncertainlyAllowedToBeModified

array

不確定是否允許修改的參數的列表。

string

不確定是否允許修改的參數。更新資源棧時,若模板保持不變,僅修改參數取值,運行時才能確定修改該參數是否會引發校正錯誤。

param4

ParametersUncertainlyCauseInterruptionIfModified

array

不確定是否會引發資源中斷的參數的列表。

說明
  • 目前僅支援少量資源類型。

  • 僅適用於更新 ROS 類型資源棧。

string

不確定是否會引發資源中斷的參數。更新資源棧時,若模板保持不變,僅修改參數取值,運行時才能確定該參數是否會引發資源中斷。

param4

ParametersCauseReplacementIfModified

array

一定會引發資源替換更新的參數的列表。

說明
  • 僅在 UpdateInfoOptions 包含 EnableReplacement 時返回。

  • 僅適用於更新 ROS 類型資源棧。

string

一定會引發資源替換更新的參數。更新資源棧時,若模板保持不變,僅修改參數取值一定會引發資源替換更新。

param5

ParametersConditionallyCauseReplacementIfModified

array

可能會引發資源替換更新的參數的列表。

說明
  • 僅在 UpdateInfoOptions 包含 EnableReplacement 時返回。

  • 僅適用於更新 ROS 類型資源棧。

string

可能會引發資源替換更新的參數。更新資源棧時,若模板保持不變,僅修改參數取值可能會引發資源替換更新,取決於參數的取值。

param6

ParametersUncertainlyCauseReplacementIfModified

array

不確定是否會引發資源替換更新的參數的列表。

說明
  • 僅在 UpdateInfoOptions 包含 EnableReplacement 時返回。

  • 僅適用於更新 ROS 類型資源棧。

string

不確定是否會引發資源替換更新的參數。更新資源棧時,若模板保持不變,僅修改參數取值,運行時才能確定該參數是否會引發資源替換更新。

param7

樣本

正常返回樣本

JSON格式

{
  "Description": "No description",
  "Parameters": [
    [
      {
        "Description": "",
        "Label": "param_integer",
        "NoEcho": "false",
        "ParameterKey": "param_integer",
        "Type": "Number"
      },
      {
        "Description": "",
        "Label": "param_float",
        "NoEcho": "false",
        "ParameterKey": "param_float",
        "Type": "Number"
      }
    ]
  ],
  "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
  "Outputs": [
    {
      "OutputKey": "instance_id",
      "Description": "The instance ID of my ECS.",
      "Label": "Instance ID"
    }
  ],
  "ResourceTypes": {
    "Resources": [
      "ALIYUN::ECS::InstanceGroup"
    ],
    "DataSources": [
      "DATASOURCE::VPC::Vpcs"
    ]
  },
  "Resources": [
    {
      "ResourceType": "ALIYUN::ECS::InstanceGroup",
      "ResourcePath": "server",
      "LogicalResourceIdPattern": "server"
    }
  ],
  "UpdateInfo": {
    "ParametersAllowedToBeModified": [
      "param1"
    ],
    "ParametersCauseInterruptionIfModified": [
      "param1"
    ],
    "ParametersConditionallyAllowedToBeModified": [
      "param2"
    ],
    "ParametersConditionallyCauseInterruptionIfModified": [
      "param2"
    ],
    "ParametersNotAllowedToBeModified": [
      "param3"
    ],
    "ParametersUncertainlyAllowedToBeModified": [
      "param4"
    ],
    "ParametersUncertainlyCauseInterruptionIfModified": [
      "param4"
    ],
    "ParametersCauseReplacementIfModified": [
      "param5"
    ],
    "ParametersConditionallyCauseReplacementIfModified": [
      "param6"
    ],
    "ParametersUncertainlyCauseReplacementIfModified": [
      "param7"
    ]
  }
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情