全部產品
Search
文件中心

Resource Orchestration Service:CreateChangeSet - 建立更改集

更新時間:Jul 28, 2025

為資源棧建立更改集,您可以在執行更改之前查看對應更改內容。

介面說明

使用情境

使用更改集建立資源棧

如果您想管理大量的雲資源,並在資源棧建立成功之前預覽資源的建立效果,您可以選擇使用更改集建立資源棧。此時您需要將ChangeSetType參數設定為 CREATE 並完成相關參數配置。關於更改集的更多資訊,請參見更改集

使用更改集更新資源棧

如果您想在更新資源之前預覽該操作對資源棧的影響,您可以選擇為現有資源棧建立更改集。此時您需要將 ChangeSetType 參數設定為 UPDATE 並完成相關參數配置。 關於更改集的更多資訊,請參見更改集

使用現有資源建立資源棧

如果您需要將現有的雲資源添加到一個新的資源棧中進行統一管理,您可以選擇使用更改集建立資源棧並完成資源匯入。此時您需要將 ChangeSetType 參數設定為 IMPORT 並完成相關參數配置。關於資源匯入的更多資訊,請參見概覽

將現有資源匯入資源棧

如果您想要將現有資源匯入到一個已有資源棧中進行統一管理,您可以選擇使用更改集對已有資源棧進行更新。此時您需要將 ChangeSetType 參數設定為 IMPORT 並完成相關參數配置。關於資源匯入的更多資訊,請參見概覽

使用限制

  • 只有部分狀態下的資源棧支援通過更改集更新。更多資訊,請參見通過更改集更新資源棧

  • 一個資源棧最多同時存在 20 個更改集。

  • 更改集只顯示資源棧變化,不顯示資源棧是否成功更新。

  • 更改集不檢查是否將超出帳號限制、是否將更新不支援更新的資源、是否許可權不足而無法修改資源,所有這些都將導致資源棧更新失敗。如果更新失敗,ROS 將嘗試將您的資源復原到原始狀態。

本文以使用更改集更新資源棧為例,在杭州地區cn-hangzhou建立一個名為MyChangeSet的更改集,將 ID 為4a6c9851-3b0f-4f5f-b4ca-a14bf691****的資源棧的模板更新為{"ROSTemplateFormatVersion":"2015-09-01"}

調試

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

調試

授權資訊

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

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

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

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

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

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

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

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

操作

存取層級

資源類型

條件關鍵字

關聯操作

ros:CreateChangeSet

create

*Stack

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

Template

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

請求參數

名稱

類型

必填

描述

樣本值

StackId

string

建立更改集的資源棧的 ID。ROS 通過將此資源棧的資訊與您提交的資訊(例如:修改後的模板或不同的參數輸入值)進行比較來產生更改集。
您可以通過調用ListStacks - 查詢資源棧列表介面擷取資源棧 ID。

說明

該參數僅在更改集類型為 UPDATE 或 IMPORT 時生效。

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

StackPolicyURL

string

包含資源棧策略的檔案的位置。URL 必須指向位於 Web 服務器(HTTP 或 HTTPS)或阿里雲 OSS 儲存空間(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)的策略,策略檔案長為 16384 個位元組。

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

說明

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

當更改集類型為 CREATE 時,您僅能指定 StackPolicyBody 或 StackPolicyURL 參數之一。

當更改集類型為 UPDATE 時,您僅能指定以下參數之一:

  • StackPolicyBody

  • StackPolicyURL

  • StackPolicyDuringUpdateBody

  • StackPolicyDuringUpdateURL

oss://ros/stack-policy/demo

StackPolicyBody

string

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

當更改集類型為 CREATE 時,您僅能指定 StackPolicyBody 或 StackPolicyURL 其中一個參數。

當更改集類型為 UPDATE 時,您僅能指定以下參數之一:

  • StackPolicyBody

  • StackPolicyURL

  • StackPolicyDuringUpdateBody

  • StackPolicyDuringUpdateURL

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

StackName

string

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

說明

該參數僅在更改集類型為 CREATE 或 IMPORT 時生效。

MyStack

UsePreviousParameters

boolean

對於未傳遞的參數,是否使用上次傳遞的值。取值:

  • true

  • false(預設值)

說明

該參數僅在更改集類型為 UPDATE 或 IMPORT 時生效。

true

ChangeSetType

string

更改集的類型。取值:

  • CREATE:為新資源棧建立更改集。

  • UPDATE(預設值):為現有資源棧建立更改集。

  • IMPORT:為新資源棧或現有資源棧建立更改集匯入非 ROS 託管資源。

當您選擇更改集類型為 CREATE 時,ROS 會為您建立新的資源棧。此時資源棧將處於REVIEW_IN_PROGRESS狀態,直到您執行更改集。

說明
  • 禁止使用 UPDATE 類型為新資源棧建立更改集,或使用 CREATE 類型為現有資源棧建立更改集。

  • IMPORT 類型的更改集不支援設定資源棧策略,請在建立或更新資源棧時設定相關參數。

UPDATE

Description

string

更改集的描述。最大長度為 1024 個位元組。

It is a demo.

RegionId

string

更改集所屬的地區 ID。

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

cn-hangzhou

ClientToken

string

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




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

TemplateURL

string

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

說明

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

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

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

oss://ros/template/demo

StackPolicyDuringUpdateURL

string

更新資源棧策略的檔案的位置。URL 必須指向位於 Web 服務器(HTTP 或 HTTPS)或阿里雲 OSS 儲存空間(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的策略,策略檔案最長為 16,384 個位元組。

說明

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

URL 最大長度為 1350 個位元組。
如果要更新受保護的資源,請在更新期間指定臨時覆蓋資源棧策略。如果未指定資源棧策略,則將使用與資源棧關聯的當前策略。該參數僅在更改集類型為 UPDATE 時生效。您僅能指定以下參數之一:

  • StackPolicyBody

  • StackPolicyURL

  • StackPolicyDuringUpdateBody

  • StackPolicyDuringUpdateURL

oss://ros/stack-policy/demo

TemplateBody

string

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

說明

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

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

TimeoutInMinutes

integer

資源棧狀態變為 CREATE_FAILED 或 UPDATE_FAILED 之前可以經過的時間量。
當更改集類型為 CREATE 時,該參數為必選參數;當更改集類型為 UPDATE 時,該參數為選擇性參數。

  • 單位:分鐘。

  • 取值範圍:10~1440。

  • 預設值:60。

12

DisableRollback

boolean

當建立資源棧失敗時,是否禁用復原策略。
取值:

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

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

說明

該參數僅在更改集類型為 CREATE 或 IMPORT 時生效。

false

ChangeSetName

string

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

說明

更改集名稱在與指定資源棧關聯的所有更改集中必須是唯一的。

MyChangeSet

StackPolicyDuringUpdateBody

string

臨時覆蓋資源棧策略的結構。長度為 1~16,384 個位元組。
如果要更新受保護資源,請在此更新期間指定臨時覆蓋資源棧策略,如未指定,則將使用與資源棧關聯的當前策略。
該參數僅在更改集類型為 UPDATE 時生效,您僅能指定以下參數之一:




  • StackPolicyBody

  • StackPolicyURL

  • StackPolicyDuringUpdateBody

  • StackPolicyDuringUpdateURL

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

RamRoleName

string

RAM 角色名稱。ROS 會扮演該角色建立資源棧,使用角色的憑證代表使用者進行介面調用。
ROS 始終將此角色用於資源棧上將進行的操作。只要使用者有權在資源棧上進行操作,即使使用者無權使用角色,ROS 也會使用此角色,確保角色授予最少的許可權。
如果使用者未指定該值,ROS 將使用以前與資源棧關聯的角色。如果沒有可用角色,ROS 將使用從您的使用者憑證中產生的臨時憑證。
RAM 角色名稱最大長度為 64 個位元組。







RAM 角色的更多資訊,請參見資源棧角色

test-role

ReplacementOption

string

如果資源的屬性發生了變化,且變化的屬性不支援修改更新(資源物理 ID 不變),是否使用替換更新(刪除資源,重新建立,資源物理 ID 會發生變化)。取值:

  • Enabled:允許替換更新。

  • Disabled(預設):不允許替換更新。

說明

修改更新的優先順序高於替換更新。該參數僅在更改集類型為 UPDATE 時生效。

Disabled

TemplateId

string

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

您可以通過調用ListTemplates - 查詢範本列表介面查看模板 ID。

說明

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

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

TemplateVersion

string

模板版本。

說明

該參數僅在指定 TemplateId 時生效。

v1

Parameters

array<object>

模板中已定義的參數。

object

ParameterKey

string

模板中已定義的參數的名稱。如果未指定特定參數的名稱和取值,則 ROS 將使用模板中指定的預設值。N 的最大值為 200。

說明

Parameters 為選擇性參數。若指定了 Parameters,則 Parameters.N.ParameterKey 為必選參數。

Amount

ParameterValue

string

模板中已定義的參數的取值。N 的最大值為 200。

說明

Parameters 為選擇性參數。若指定了 Parameters,則 Parameters.N.ParameterValue 為必選參數。

12

NotificationURLs

array

接收資源棧事件的回調地址清單。

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

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-notify

ResourcesToImport

array<object>

待匯入資源清單。

object

ResourceIdentifier

string

字串到字串的索引值映射。取值是 JSON 格式的字串,用來標識要匯入的資源。
鍵是資源的標識符屬性(例如:ALIYUN::ECS::VPC 資源的 VpcId),值是屬性的取值(例如:vpc-2zevx9ios****)。

資源的標識符屬性可以通過 GetTemplateSummary 介面擷取。

說明

該參數僅在更改集類型為 IMPORT 時生效。ResourcesToImport 為選擇性參數。若指定了 ResourcesToImport,則 ResourcesToImport.N.ResourceIdentifier 為必選參數。

{"VpcId": "vpc-2zevx9ios******"}

LogicalResourceId

string

資源邏輯 ID,即模板中資源的名稱。

說明

該參數僅在更改集類型為 IMPORT 時生效。ResourcesToImport 為選擇性參數。若指定了 ResourcesToImport,則 ResourcesToImport.N.LogicalResourceId 為必選參數。

Vpc

ResourceType

string

資源的類型,需要與模板中定義的類型一致。

說明

該參數僅在更改集類型為 IMPORT 時生效。ResourcesToImport 為選擇性參數。若指定了 ResourcesToImport,則 ResourcesToImport.N.ResourceType 為必選參數。

ALIYUN::ECS::VPC

TemplateScratchId

string

資源情境 ID,即資源納管情境 ID。

當 ChangeSetType 取值為 IMPORT 時,該參數才有效,該參數僅支援建立新的資源棧匯入。

如果您想通過資源納管情境匯入資源時,請只設定該參數,而不是模板相關參數。

您可以通過調用ListTemplateScratches - 查詢資源情境列表查看資源納管情境 ID。

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

Parallelism

integer

資源最大並發數。預設為空白,使用者可以輸入大於等於零的整數。設定資源最大並發數後,將與資源棧進行關聯,影響資源棧的後續操作。

該參數僅在更改集類型為 CREATE 或 UPDATE 時生效,取值:

  • 當更改集類型為 CREATE 時

    • 設定為大於零的整數:使用整數值。

    • 設定為零或者不設定:對於 ROS 類型資源棧不限制,Terraform 類型資源棧使用 Terraform 預設值(通常為 10)。

  • 當更改集類型為 UPDATE 時

    • 設定為大於零的整數:使用整數值。

    • 設定為零:對於 ROS 類型資源棧不限制,Terraform 類型資源棧使用 Terraform 預設值(通常為 10)。

    • 不設定:使用上次操作時設定的值。如果上次操作時未設定該參數,對於 ROS 類型資源棧不限制,Terraform 類型資源棧使用 Terraform 預設值(通常為 10)。

1

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****

TaintResources

array

標記為髒資源的列表。

string

  • ROS 資源棧中,需要配置為:資源名稱,例如:my_vpc。

  • Terraform 資源棧中,需要配置為:資源類型+資源名稱,例如:alicloud_vpc.my_vpc

my_vpc

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

返回參數

名稱

類型

描述

樣本值

object

ChangeSetId

string

更改集 ID。

e85abe0c-6528-43fb-ae93-fdf8de22****

RequestId

string

請求 ID。

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

StackId

string

資源棧 ID。

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

錯誤碼

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

變更歷史

更多資訊,參考變更詳情