預覽指定模板將要創(chuàng)建的資源棧信息,驗證模板資源的準確性。
接口說明
本文將提供一個示例,在杭州地域創(chuàng)建并預覽一個名為MyStack
的資源棧,該資源棧的模板TemplateBody
設置為{"ROSTemplateFormatVersion":"2015-09-01"}
。
調(diào)試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調(diào)用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產(chǎn)品自身定義的條件關鍵字。
- 關聯(lián)操作:是指成功執(zhí)行操作所需要的其他權限。操作者必須同時具備關聯(lián)操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯(lián)操作 |
---|---|---|---|---|
ros:PreviewStack | get |
|
| 無 |
請求參數(shù)
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
DisableRollback | boolean | 否 | 當創(chuàng)建資源棧失敗時,是否禁用回滾。取值:
| false |
TimeoutInMinutes | long | 否 | 創(chuàng)建資源棧的超時時間。 單位:分鐘。 默認值:60。 | 60 |
TemplateBody | string | 否 | 模板主體的結構。長度為 1~524,288 個字節(jié)。如果長度較長,則建議通過 HTTP POST+Body Param 的方式,將參數(shù)放在請求體中進行傳遞,避免因 URL 過長而導致請求失敗。 說明
您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一個參數(shù)。
| {"ROSTemplateFormatVersion":"2015-09-01"} |
StackPolicyURL | string | 否 | 包含資源棧策略的文件的位置。URL 必須指向位于 Web 服務器(HTTP 或 HTTPS)或阿里云 OSS 存儲空間(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的策略,策略文件最大長度為 16,384 個字節(jié)。如未指定 OSS 地域,默認與 RegionId 取值相同。 說明
您僅能指定 StackPolicyBody 和 StackPolicyURL 其中一個參數(shù)。
URL 最大長度為 1350 個字節(jié)。 | oss://ros-stack-policy/demo |
RegionId | string | 是 | 資源棧所屬的地域 ID。您可以調(diào)用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
StackPolicyBody | string | 否 | 包含資源棧策略主體的結構,長度為 1~16,384 個字節(jié)。 說明
您僅能指定 StackPolicyBody 和 StackPolicyURL 其中一個參數(shù)。
| {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} |
StackName | string | 否 | 資源棧名稱。預覽創(chuàng)建資源棧。 長度不超過 255 個字符,必須以數(shù)字或英文字母開頭,可包含數(shù)字、英文字母、短劃線(-)和下劃線(_)。 說明
您必須且僅能指定 StackName 或 StackId 其中一個參數(shù)。
| MyStack |
ClientToken | string | 否 | 保證請求的冪等性。該值由客戶端生成,并且必須是全局唯一的。 | 123e4567-e89b-12d3-a456-42665544**** |
TemplateURL | string | 否 | 包含模板主體的文件的位置。URL 必須指向位于 Web 服務器(HTTP 或 HTTPS)或阿里云 OSS 存儲空間(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的模板,模板的最大長度為 524,288 個字節(jié)。如未指定 OSS 地域,默認與 RegionId 取值相同。 說明
您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一個參數(shù)。
| oss://ros-template/demo |
TemplateId | string | 否 | 模板 ID。支持共享模板和私有模板。 說明
您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一個參數(shù)。
| 5ecd1e10-b0e9-4389-a565-e4c15efc**** |
TemplateVersion | string | 否 | 模板版本。僅在指定 TemplateId 時生效。 | v1 |
Parameters | array<object> | 否 | 參數(shù)。 | |
object | 否 | |||
ParameterKey | string | 是 | 參數(shù)名稱。如果未指定參數(shù)名稱和參數(shù)值,ROS 將使用模板中指定的默認值。N 的最大值為 200。 說明
若指定了 Parameters,則 Parameters.N.ParameterKey 為必選參數(shù)。
| ALIYUN::AccountId |
ParameterValue | string | 是 | 參數(shù)值。N 的最大值為 200。 說明
若指定了 Parameters,則 Parameters.N.ParameterValue 為必選參數(shù)。
| 151266687691**** |
Parallelism | long | 否 | 資源最大并發(fā)數(shù)。僅對 Terraform 類型資源棧生效。 默認為空,用戶可以輸入大于等于零的整數(shù)。 說明
若設置為大于零的整數(shù),則使用該整數(shù);若設置為零或者不設置,則使用 Terraform 默認值(通常為 10)。
| 1 |
TemplateScratchId | string | 否 | 資源場景 ID。 關于如何獲取資源場景 ID,請參見 ListTemplateScratches 。 說明
您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 和 TemplateScratchId 其中一個參數(shù)。
| ts-aa9c62feab844a6b**** |
TemplateScratchRegionId | string | 否 | 資源場景所屬的地域 ID,默認與 RegionId 取值相同。 您可以調(diào)用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
StackId | string | 否 | 資源棧 ID。預覽更新資源棧。 說明
| 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
EnablePreConfig | boolean | 否 | 是否獲取合規(guī)預檢參數(shù)。 取值:
| false |
關于公共請求參數(shù)的詳情,請參見公共參數(shù)。
返回參數(shù)
示例
正常返回示例
JSON
格式
{
"RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"Stack": {
"TemplateDescription": "One ECS instance.",
"Parameters": [
{
"ParameterKey": "ALIYUN::AccountId",
"ParameterValue": "151266687691****"
}
],
"Description": "One ECS instance.",
"DisableRollback": false,
"StackName": "MyStack",
"TimeoutInMinutes": 60,
"StackPolicyBody": {
"Statement": [
{
"Action": "Update:*",
"Resource": "*",
"Effect": "Allow",
"Principal": "*"
},
{
"Action": "Update:*",
"Resource": "LogicalResourceId/apple1",
"Effect": "Deny",
"Principal": "*"
}
]
},
"Resources": [
{
"LogicalResourceId": "WebServer",
"AcsResourceType": "ACS::ECS::Instance",
"ResourceType": "ALIYUN::ECS::Instance",
"Description": "ECS instance.",
"Stack": {},
"RequiredBy": [
"[\"Resource1\", \"Resource2\"]"
],
"Properties": {
"DiskMappings": [
{
"Category": "cloud_ssd",
"Size": "20"
}
],
"SystemDisk_Category": "cloud_ssd",
"InstanceChargeType": "PostPaid",
"AutoRenew": "False",
"WillReplace": true,
"ImageId": "centos_7",
"InstanceType": "ecs.g6.large",
"AllocatePublicIP": true,
"AutoRenewPeriod": 1,
"IoOptimized": "optimized",
"ZoneId": "cn-beijing-g",
"VSwitchId": "",
"SecurityGroupId": "",
"Period": 1,
"InternetChargeType": "PayByTraffic",
"SystemDiskCategory": "cloud_efficiency",
"InternetMaxBandwidthOut": 1,
"VpcId": "",
"InternetMaxBandwidthIn": 200,
"PeriodUnit": "Month"
},
"Action": "Add",
"Replacement": "False",
"PhysicalResourceId": "i-a1b2c3***"
}
],
"RegionId": "cn-hangzhou",
"Log": {
"TerraformLogs": [
{
"Command": "apply",
"Stream": "stdout",
"Content": "Apply complete! Resources: 42 added, 0 changed, 0 destroyed."
}
]
}
}
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內(nèi)容概要 | 操作 |
---|---|---|
2024-01-11 | API 內(nèi)部配置變更,不影響調(diào)用 | 查看變更詳情 |
訪問公共錯誤碼查看更多錯誤碼。
HttpCode | 錯誤碼 | 錯誤信息 | 描述 |
---|---|---|---|
400 | CircularDependency | Circular Dependency Found: {reason}. | 模板包含循環(huán)引用。reason 為具體原因。 |
400 | InvalidSchema | {reason}. | 模板格式不正確。reason 為具體原因。 |
400 | InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | 模板包含不正確的資源屬性(輸出)引用。resource 為資源名,name 為屬性名。 |
400 | InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | 模板資源定義中的字段類型不正確。resource 為資源名,section 為字段名。 |
400 | InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | 模板包含不正確的引用。name 為引用名,referencer 為引用者。 |
400 | InvalidTemplateSection | The template section is invalid: {section}. | 模板包含無效的字段。section 為字段名。 |
400 | InvalidTemplateVersion | The template version is invalid: {reason}. | 模板版本不正確。reason 為具體原因。 |
400 | StackValidationFailed | {reason}. | 資源棧校驗失敗。reason 為具體原因。 |
400 | UnknownUserParameter | The Parameter ({name}) was not defined in template. | 傳遞的參數(shù)在模板中未定義。name 為參數(shù)名。 |
400 | UserParameterMissing | The Parameter {name} was not provided. | 參數(shù)在模板中已定義,但未傳遞值。name 為參數(shù)名。 |
409 | StackExists | The Stack ({name}) already exists. | 同名資源棧已存在。name 為資源棧名稱。 |
404 | TemplateNotFound | The Template ({ ID }) could not be found. | 模板不存在。ID 為模板 ID。 |
404 | TemplateNotFound | The Template { ID } with version { version } could not be found. | 模板或指定版本不存在。ID 為模板 ID,version 為模板版本。 |