全部產品
Search
文件中心

Resource Orchestration Service:CreateStack - 建立資源棧

更新時間:Jun 04, 2026

使用Resource Orchestration Service模板建立資源棧,完成一組資源的建立。

介面說明

資源棧是針對 ROS 資源的嵌入式管理單元,您可通過建立資源棧來建立一組資源。關於資源棧的更多資訊,請參見概覽
使用限制:

  • 每個阿里雲帳號最多建立 200 個資源棧。

  • 每個資源棧中最多建立 200 個資源。

本文將提供一個樣本,在杭州地區建立一個名為MyStack的資源棧,並將資源棧的模板TemplateBody設定為{"ROSTemplateFormatVersion":"2015-09-01"}

調試

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

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

ros:CreateStack

create

*Stack

acs:ros:{#regionId}:{#accountId}:stack/*

Template

acs:ros:{#regionId}:{#accountId}:template/{#TemplateId}

請求參數

名稱

類型

必填

描述

樣本值

DisableRollback

boolean

當建立資源棧失敗時,是否禁用復原。

取值:

  • true:禁用復原,即在建立資源棧失敗時不進行復原。

  • false(預設值):不禁用復原,即在建立資源棧失敗時進行復原。

false

TemplateBody

string

模板主體的結構。長度為 1~524,288 個位元組。如果長度較長,則建議通過 HTTP POST+Body Param 的方式,將參數放在請求體中進行傳遞,避免因 URL 過長而導致請求失敗。

說明

您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 或 TemplateScratchId 其中一個參數。

{"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 個位元組。如未指定 OSS 地區,預設與介面參數 RegionId 相同。

說明

您僅能指定 StackPolicyBody 或 StackPolicyURL 其中一個參數。

URL 最大長度為 1350 個位元組。

oss://ros-stack-policy/demo

TimeoutInMinutes

integer

建立資源棧的逾時時間。

  • 預設值:60。

  • 單位:分鐘。

  • 取值範圍:10~1440。

10

StackPolicyBody

string

包含資源棧策略主體的結構,長度為 1~16,384 個位元組。

說明

您僅能指定 StackPolicyBody 或 StackPolicyURL 其中一個參數。

{"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]}

StackName

string

資源棧名稱。
長度不超過 255 個字元,必須以英文字母開頭,可包含數字、英文字母、短劃線(-)和底線(_)。

MyStack

RegionId

string

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

cn-hangzhou

ClientToken

string

保證請求的等冪性。該值由用戶端產生,並且必須是全域唯一的。長度不超過 64 個字元,可包含英文字母、數字、短劃線(-)和底線(_)。

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

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 個位元組。如未指定 OSS 地區,預設與 RegionId 取值相同。

說明

您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 或 TemplateScratchId 其中一個參數。

oss://ros-template/demo

RamRoleName

string

RAM 角色名稱。ROS 會扮演該角色建立資源棧,使用角色的憑證代表使用者進行介面調用。
ROS 始終將此角色用於資源棧上將進行的操作。只要使用者有權在資源棧上進行操作,即使使用者無權使用角色,ROS 也會使用此角色,確保角色授予最少的許可權。關於如何使用 RAM 角色,請參見使用資源棧角色

如果使用者未指定該值,ROS 將使用以前與資源棧關聯的角色。如果沒有可用角色,ROS 將使用從您的使用者憑證中產生的臨時憑證。

RAM 角色名稱最大長度為 64 個字元。

test-role

DeletionProtection

string

是否開啟資源棧刪除保護。取值:

  • Enabled:開啟資源棧刪除保護。

  • Disabled(預設):關閉資源棧刪除保護。此時支援通過控制台或 API(DeleteStack)釋放資源棧。

說明

嵌套資源棧刪除保護與根資源棧一致。

Enabled

CreateOption

string

建立選項,用於控制建立資源棧的行為。取值:

  • KeepStackOnCreationComplete(預設值):建立資源棧成功後保留資源棧及資源棧中的資源,佔用 ROS 允許建立的資源棧數量限額。

  • AbandonStackOnCreationComplete:建立資源棧成功後刪除資源棧,但保留所有資源,不佔用 ROS 允許建立的資源棧數量限額。如果建立資源棧失敗,資源棧會保留。

  • AbandonStackOnCreationRollbackComplete:建立資源棧復原成功後刪除資源棧,不佔用 ROS 允許建立的資源棧數量限額。其他情況則保留資源棧。

  • ManuallyPay:在建立資源棧過程中手動支付訂用帳戶的資源。目前支援手動支付的資源類型包括ALIYUN::ECS::InstanceGroupALIYUN::RDS::DBInstanceALIYUN::SLB::LoadBalancerALIYUN::VPC::EIPALIYUN::VPC::VpnGateway

  • RetryOnNoStock:建立資源因為無庫存原因失敗時,會自動進行重試。目前支援重試的資源類型包括ALIYUN::RDS::DBInstance

說明

僅能指定 CreateOption 和 CreateOptions 其中一個參數。

KeepStackOnCreationComplete

CreateOptions

array

建立選項列表。

string

建立選項,用於控制建立資源棧的行為。取值:

  • KeepStackOnCreationComplete(預設值):建立資源棧成功後保留資源棧及資源棧中的資源,佔用 ROS 允許建立的資源棧數量限額。

  • AbandonStackOnCreationComplete:建立資源棧成功後刪除資源棧,但保留所有資源,不佔用 ROS 允許建立的資源棧數量限額。如果建立資源棧失敗,資源棧會保留。

  • AbandonStackOnCreationRollbackComplete:建立資源棧復原成功後刪除資源棧,不佔用 ROS 允許建立的資源棧數量限額。其他情況則保留資源棧。

  • ManuallyPay:在建立資源棧過程中手動支付訂用帳戶的資源。目前支援手動支付的資源類型包括ALIYUN::ECS::InstanceGroupALIYUN::RDS::DBInstanceALIYUN::SLB::LoadBalancerALIYUN::VPC::EIPALIYUN::VPC::VpnGateway

  • RetryOnNoStock:建立資源因為無庫存原因失敗時,會自動進行重試。目前支援重試的資源類型包括ALIYUN::RDS::DBInstance

說明
  • 僅能指定 CreateOption 和 CreateOptions 其中一個參數。

  • 建立選項不可重複,且 KeepStackOnCreationComplete 與 AbandonStackOnCreationComplete、AbandonStackOnCreationRollbackComplete 兩個選項互斥。

  • N 最大值為 4。

KeepStackOnCreationComplete

TemplateId

string

模板 ID。支援共用模板和私人模板。

說明

您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 或 TemplateScratchId 其中一個參數。

5ecd1e10-b0e9-4389-a565-e4c15efc****

TemplateVersion

string

模板版本。僅在指定 TemplateId 時生效。

v1

Parameters

array<object>

模板中已定義的參數。

object

ParameterKey

string

模板中已定義的參數的名稱。如果未指定參數的名稱和值,則 ROS 將使用模板中指定的預設值。

N 最大值為 200。
長度為 1~128 個字元,不能以aliyunacs:開頭,不能包含http://或者https://

說明

Parameters 為選擇性參數。如果需要指定 Parameters,則 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必須同時指定。

InstanceId

ParameterValue

string

模板中已定義的參數的取值。

N 最大值為 200。
長度為 0~128 個字元,不能以aliyunacs:開頭,不能包含http://或者https://

說明

Parameters 為選擇性參數。如果需要指定 Parameters,則 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必須同時指定。

i-xxxxxx

NotificationURLs

array

接收資源棧事件的回調地址。取值:

  • HTTP POST URL
    每個 URL 最大長度為 1024 個位元組。

  • eventbridge
    資源棧狀態變更會通知到事件匯流排(EventBridge)服務。您可以在事件匯流排控制台查看事件資訊。

說明

當前支援華東 1(杭州)、華東 2(上海)、華北 2(北京)、中國(香港)、華北 3(張家口)五個地區。

N 最大值為 5。資源棧的狀態發生變化時,會進行通知。當資源棧啟用復原時,CREATE_FAILED(建立失敗)和 UPDATE_FAILED(更新失敗)不會通知,而 CREATE_ROLLBACK(建立失敗復原)和 ROLLBACK(更新失敗復原)會進行通知。IN_PROGRESS 狀態不會通知。
無論資源棧是否定義了 Outputs 都會進行通知。通知內容樣本如下:

{
   "Outputs": [
       {
           "Description": "No description given",
           "OutputKey": "InstanceId",
           "OutputValue": "i-xxx"
       }
   ],
   "StackId": "80bd6b6c-e888-4573-ae3b-93d29113****",
   "StackName": "test-notification-url",
   "Status": "CREATE_COMPLETE"
}

http://my-site.com/ros-event

string

接收資源棧事件的回調地址。取值:

  • HTTP POST URL
    每個 URL 最大長度為 1024 個位元組。

  • eventbridge
    資源棧狀態變更會通知到事件匯流排(EventBridge)服務。您可以在事件匯流排控制台查看事件資訊。

說明

當前支援華東 1(杭州)、華東 2(上海)、華北 2(北京)、中國(香港)、華北 3(張家口)五個地區。

N 最大值為 5。資源棧的狀態發生變化時,會進行通知。當資源棧啟用復原時,CREATE_FAILED(建立失敗)和 UPDATE_FAILED(更新失敗)不會通知,而 CREATE_ROLLBACK(建立失敗復原)和 ROLLBACK(更新失敗復原)會進行通知。IN_PROGRESS 狀態不會通知。
無論資源棧是否定義了 Outputs 都會進行通知。通知內容樣本如下:

{
   "Outputs": [
       {
           "Description": "No description given",
           "OutputKey": "InstanceId",
           "OutputValue": "i-xxx"
       }
   ],
   "StackId": "80bd6b6c-e888-4573-ae3b-93d29113****",
   "StackName": "test-notification-url",
   "Status": "CREATE_COMPLETE"
}

http://example.com/ros-event

Tags

array<object>

資源棧的標籤。

object

Key

string

資源棧的標籤鍵。

N 的取值範圍為 1~20。

說明
  • Tags 為選擇性參數。如果需要指定 Tags,則 Tags.N.Key 必須指定。

  • 此標籤會傳遞到資源棧中每個支援標籤的資源中。更多資訊,請參見標籤傳遞

usage

Value

string

資源棧的標籤值。

N 的取值範圍為 1~20。

說明

此標籤會傳遞到資源棧中每個支援標籤的資源中。更多資訊,請參見標籤傳遞

test

ResourceGroupId

string

資源群組 ID。如果不指定該參數,資源棧將加入預設資源群組。

關於資源群組的更多資訊,請參見什麼是資源群組

rg-acfmxazb4ph6aiy****

Parallelism

integer

資源最大並發數。

預設為空白,使用者可以輸入大於等於零的整數。

說明
  • 若設定為大於零的整數,則使用該整數;若設定為零或者不設定,對於 ROS 類型資源棧不限制,Terraform 類型資源棧使用 Terraform 預設值(通常為 10)。

  • 若設定了該值,將與資源棧進行關聯,影響資源棧的後續操作,比如更新資源棧。

1

TemplateScratchId

string

資源情境 ID。

關於如何擷取資源情境 ID,請參見 ListTemplateScratches

說明

您必須且僅能指定 TemplateBody、TemplateURL、TemplateId 或 TemplateScratchId 其中一個參數。

ts-aa9c62feab844a6b****

TemplateScratchRegionId

string

資源情境所屬的地區 ID,預設與 RegionId 取值相同。

您可以調用 DescribeRegions 查看最新的阿里雲地區列表。

cn-hangzhou

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

返回參數

名稱

類型

描述

樣本值

object

RequestId

string

請求 ID。

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

StackId

string

資源棧 ID。

4a6c9851-3b0f-4f5f-b4ca-a14bf691****

樣本

正常返回樣本

JSON格式

{
  "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
  "StackId": "4a6c9851-3b0f-4f5f-b4ca-a14bf691****"
}

錯誤碼

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

變更歷史

更多資訊,參考變更詳情