Membuat change set.
Deskripsi
Anda dapat membuat dan mengeksekusi change set untuk memperbarui stack yang sedang berjalan. Untuk informasi selengkapnya tentang change set, lihat Overview.
Batasan
- Sebuah stack dapat berisi hingga 20 change set.
- Change set hanya mencerminkan perubahan pada stack, bukan apakah stack tersebut telah diperbarui atau belum.
- Anda tidak dapat menggunakan change set untuk memeriksa hal-hal berikut: apakah batas atas akun Anda telah tercapai, apakah pembaruan akan mengubah resource yang tidak dapat diperbarui, atau apakah akun Anda memiliki izin yang diperlukan untuk mengubah resource. Hal-hal tersebut dapat menyebabkan pembaruan stack gagal. Jika pembaruan stack gagal, Resource Orchestration Service (ROS) akan mencoba melakukan rollback resource ke status semula.
Topik ini memberikan contoh cara membuat change set. Pada contoh ini, sebuah change set bernama MyChangeSet dibuat di wilayah China (Hangzhou). Change set ini digunakan untuk mengubah body template dari sebuah stack menjadi {"ROSTemplateFormatVersion":"2015-09-01"}. ID stack tersebut adalah 4a6c9851-3b0f-4f5f-b4ca-a14bf691****.
Debugging
Parameter permintaan
| Parameter | Type | Wajib | Contoh | Deskripsi |
| Action | String | Ya | CreateChangeSet | Operasi yang ingin Anda lakukan. Tetapkan nilainya ke CreateChangeSet. |
| StackId | String | Tidak | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID stack tempat Anda ingin membuat change set. ROS membandingkan informasi stack dengan informasi yang Anda tentukan, seperti template yang dimodifikasi atau nilai parameter yang diubah, untuk menghasilkan change set. Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke UPDATE atau IMPORT. |
| StackPolicyURL | String | Tidak | oss://ros/stack-policy/demo | URL file yang berisi kebijakan stack. URL harus mengarah ke kebijakan yang berada di server web HTTP atau HTTPS atau di bucket Object Storage Service (OSS), seperti oss://ros/stack-policy/demo atau oss://ros/stack-policy/demo?RegionId=cn-hangzhou. File kebijakan dapat memiliki panjang maksimal 16.384 byte. Catatan Jika Anda tidak menentukan ID wilayah bucket OSS, maka nilai parameter RegionId yang digunakan. Anda dapat menentukan parameter StackPolicyBody atau StackPolicyURL. Panjang URL dapat mencapai 1.350 byte. Jika Anda mengatur parameter ChangeSetType ke CREATE, Anda dapat menentukan parameter StackPolicyBody atau StackPolicyURL. Jika Anda mengatur parameter ChangeSetType ke UPDATE, Anda hanya dapat menentukan salah satu dari parameter berikut:
|
| StackPolicyBody | String | Tidak | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | Struktur yang berisi isi kebijakan stack. Isi kebijakan harus memiliki panjang 1 hingga 16.384 byte. Jika Anda mengatur parameter ChangeSetType ke CREATE, Anda dapat menentukan parameter StackPolicyBody atau StackPolicyURL. Jika Anda mengatur parameter ChangeSetType ke UPDATE, Anda hanya dapat menentukan salah satu dari parameter berikut:
|
| StackName | String | Tidak | MyStack | Nama stack tempat Anda ingin membuat change set. Nama dapat memiliki panjang hingga 255 karakter, dan dapat berisi angka, huruf, tanda hubung (-), dan garis bawah (_). Nama harus diawali dengan angka atau huruf. Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke CREATE atau IMPORT. |
| UsePreviousParameters | Boolean | Tidak | true | Menentukan apakah akan menggunakan nilai yang ditentukan dalam permintaan sebelumnya untuk parameter yang tidak Anda tentukan dalam permintaan saat ini. Nilai default: false. Nilai yang valid:
Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke UPDATE atau IMPORT. |
| ChangeSetType | String | Tidak | UPDATE | Tipe change set. Nilai default: UPDATE. Nilai yang valid:
Jika Anda membuat change set untuk stack baru, ROS akan menghasilkan ID stack unik untuk stack tersebut. Stack tetap berada dalam status REVIEW_IN_PROGRESS hingga Anda mengeksekusi change set tersebut. Anda tidak dapat menggunakan tipe UPDATE untuk membuat change set untuk stack baru atau tipe CREATE untuk membuat change set untuk stack yang sudah ada. |
| Description | String | Tidak | It is a demo. | Deskripsi change set. Deskripsi dapat memiliki panjang hingga 1.024 byte. |
| RegionId | String | Ya | cn-hangzhou | ID wilayah untuk change set. Anda dapat memanggil operasi DescribeRegions untuk mengambil daftar wilayah terbaru. |
| ClientToken | String | Tidak | 123e4567-e89b-12d3-a456-42665544**** | Token klien yang digunakan untuk memastikan idempotensi permintaan. Anda dapat menghasilkan nilai ini di sisi klien, tetapi Anda harus memastikan bahwa nilainya unik di antara permintaan yang berbeda. Token dapat memiliki panjang hingga 64 karakter, dan dapat berisi huruf, angka, tanda hubung (-), dan garis bawah (_). Untuk informasi selengkapnya, lihat Ensure idempotence. |
| TemplateURL | String | Tidak | oss://ros/template/demo | URL file yang berisi isi template. URL harus mengarah ke template yang berada di server web HTTP atau HTTPS atau di bucket OSS, seperti oss://ros/template/demo atau oss://ros/template/demo?RegionId=cn-hangzhou. Isi template dapat memiliki panjang maksimal 524.288 byte. Catatan Jika Anda tidak menentukan ID wilayah bucket OSS, maka nilai parameter RegionId yang digunakan. Anda hanya dapat menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, dan TemplateId. Panjang URL dapat mencapai 1.024 byte. |
| StackPolicyDuringUpdateURL | String | Tidak | oss://ros/stack-policy/demo | URL file yang berisi kebijakan stack pengganti sementara. URL harus mengarah ke kebijakan yang berada di server web HTTP atau HTTPS atau di bucket OSS, seperti oss://ros/stack-policy/demo atau oss://ros/stack-policy/demo?RegionId=cn-hangzhou. File kebijakan dapat memiliki panjang maksimal 16.384 byte. Catatan Jika Anda tidak menentukan ID wilayah bucket OSS, maka nilai parameter RegionId yang digunakan. Panjang URL dapat mencapai 1.350 byte. Jika Anda ingin memperbarui resource yang dilindungi, tentukan kebijakan stack pengganti sementara untuk resource tersebut selama pembaruan. Jika Anda tidak menentukan kebijakan tersebut, kebijakan yang sudah ada dan terkait dengan stack akan digunakan. Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke UPDATE. Anda hanya dapat menentukan salah satu dari parameter berikut:
|
| TemplateBody | String | Tidak | {"ROSTemplateFormatVersion":"2015-09-01"} | Struktur yang berisi isi template. Isi template harus memiliki panjang 1 hingga 524.288 byte. Jika panjang isi template melebihi batas atas, kami menyarankan agar Anda menambahkan parameter ke badan permintaan HTTP POST untuk mencegah kegagalan permintaan akibat URL yang terlalu panjang. Anda hanya dapat menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, dan TemplateId. |
| TimeoutInMinutes | Long | Tidak | 12 | Jumlah waktu yang dapat berlalu sebelum stack masuk ke status CREATE_FAILED atau UPDATE_FAILED. Jika Anda mengatur parameter ChangeSetType ke CREATE, parameter ini wajib diisi. Jika Anda mengatur parameter ChangeSetType ke UPDATE, parameter ini opsional.
|
| DisableRollback | Boolean | Tidak | false | Menentukan apakah akan menonaktifkan rollback ketika pembuatan stack gagal. Nilai default: false. Nilai yang valid:
Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke CREATE atau IMPORT. |
| ChangeSetName | String | Ya | MyChangeSet | Nama change set. Nama dapat memiliki panjang hingga 255 karakter, dan dapat berisi angka, huruf, tanda hubung (-), dan garis bawah (_). Nama harus diawali dengan angka atau huruf. Catatan Pastikan nama tersebut unik di antara semua nama change set yang terkait dengan stack yang ditentukan. |
| StackPolicyDuringUpdateBody | String | Tidak | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | Struktur yang berisi isi kebijakan stack pengganti sementara. Isi kebijakan harus memiliki panjang 1 hingga 16.384 byte. Jika Anda ingin memperbarui resource yang dilindungi, tentukan kebijakan stack pengganti sementara untuk resource tersebut selama pembaruan. Jika Anda tidak menentukan kebijakan tersebut, kebijakan stack yang sudah ada dan terkait dengan stack akan digunakan. Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke UPDATE. Anda hanya dapat menentukan salah satu dari parameter berikut:
|
| RamRoleName | String | Tidak | test-role | Nama peran RAM. ROS mengasumsikan peran RAM untuk membuat stack dan menggunakan kredensial peran tersebut untuk memanggil API layanan Alibaba Cloud. ROS mengasumsikan peran RAM untuk melakukan operasi pada stack. Jika Anda memiliki izin untuk melakukan operasi pada stack tetapi tidak memiliki izin untuk menggunakan peran RAM, ROS tetap akan mengasumsikan peran RAM tersebut. Anda harus memastikan bahwa peran RAM tersebut diberikan hak istimewa minimal. Jika Anda tidak menentukan parameter ini, ROS akan mengasumsikan peran RAM yang sudah ada dan terkait dengan stack. Jika tidak tersedia peran RAM, ROS akan menggunakan kredensial temporary yang dihasilkan dari kredensial akun Anda. Nama peran RAM dapat memiliki panjang hingga 64 byte. |
| ReplacementOption | String | Tidak | Disabled | Menentukan apakah akan mengaktifkan pembaruan penggantian jika properti resource diubah tetapi Anda tidak dapat mengubah properti resource tersebut. Untuk perubahan biasa, ID fisik resource tetap tidak berubah. Untuk pembaruan penggantian, resource yang ada dihapus, resource baru dibuat, dan ID fisik resource berubah. Nilai default: Disabled. Nilai yang valid:
Catatan Perubahan biasa memiliki prioritas lebih tinggi daripada pembaruan penggantian. Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke UPDATE. |
| TemplateId | String | Tidak | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID template. Parameter ini berlaku untuk template bersama dan template pribadi. Anda hanya dapat menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, dan TemplateId. |
| TemplateVersion | String | Tidak | v1 | Versi template. Catatan Parameter ini hanya berlaku ketika parameter TemplateId ditentukan. |
| Parameters.N.ParameterKey | String | Ya | Amount | Nama parameter N yang didefinisikan dalam template. Jika Anda tidak menentukan nama dan nilai parameter, ROS akan menggunakan nama dan nilai default yang didefinisikan dalam template. Nilai maksimum N: 200. Catatan Parameter Parameters bersifat opsional. Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Ya | 12 | Nilai parameter N yang didefinisikan dalam template. Nilai maksimum N: 200. Catatan Parameter Parameters bersifat opsional. Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterValue. |
| NotificationURLs.N | String | Tidak | http://example.com/ros-notify | URL callback yang digunakan untuk menerima event stack N. Nilai yang valid:
Nilai maksimum N: 5. Ketika status stack berubah, ROS mengirim notifikasi event ke URL yang ditentukan. Ketika rollback diaktifkan untuk stack, notifikasi event dikirim jika stack berada dalam status CREATE_ROLLBACK atau ROLLBACK, tetapi tidak dikirim jika stack berada dalam status CREATE_FAILED, UPDATE_FAILED, atau IN_PROGRESS. ROS mengirim notifikasi event terlepas dari apakah Anda mengonfigurasi bagian Outputs atau tidak. Contoh kode berikut menunjukkan isi notifikasi event: |
| ResourcesToImport.N.ResourceIdentifier | String | Ya | {"VpcId": "vpc-2zevx9ios******"} | Pemetaan key-value antar string. Nilainya adalah string JSON yang mengidentifikasi resource N yang akan diimpor. Kunci adalah pengenal untuk sebuah resource dan nilai adalah penugasan data ke kunci tersebut. Misalnya, VpcId adalah kunci yang menentukan ID virtual private cloud (VPC), dan Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke IMPORT. Parameter ResourcesToImport bersifat opsional. Jika Anda menentukan ResourcesToImport, Anda harus menentukan ResourcesToImport.N.ResourceIdentifier. |
| ResourcesToImport.N.LogicalResourceId | String | Ya | Vpc | ID logis resource N yang ingin Anda impor. ID logis menentukan nama resource yang didefinisikan dalam template. Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke IMPORT. Parameter ResourcesToImport bersifat opsional. Jika Anda menentukan ResourcesToImport, Anda harus menentukan ResourcesToImport.N.LogicalResourceId. |
| ResourcesToImport.N.ResourceType | String | Ya | ALIYUN::ECS::VPC | Tipe resource N yang ingin Anda impor. Tipe resource harus sama dengan tipe resource yang didefinisikan dalam template. Catatan Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke IMPORT. Parameter ResourcesToImport bersifat opsional. Jika Anda menentukan ResourcesToImport, Anda harus menentukan ResourcesToImport.N.ResourceType. |
| TemplateScratchId | String | Tidak | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID template skenario. |
| Parallelism | Long | Tidak | 1 | Jumlah maksimum operasi konkuren yang dapat dilakukan pada resource. Secara default, parameter ini kosong. Anda dapat mengatur parameter ini ke bilangan bulat yang lebih besar dari atau sama dengan 0. Jika Anda mengatur parameter ini ke nilai tertentu, ROS akan mengaitkan nilai tersebut dengan stack. Nilai ini dapat memengaruhi operasi selanjutnya pada stack. Parameter ini hanya berlaku ketika parameter ChangeSetType diatur ke CREATE atau UPDATE. Nilai yang valid:
|
Untuk informasi selengkapnya tentang parameter permintaan umum, lihat Common parameters.
Parameter respons
| Parameter | Type | Contoh | Deskripsi |
| ChangeSetId | String | e85abe0c-6528-43fb-ae93-fdf8de22**** | ID change set. |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F | ID permintaan. |
| StackId | String | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID stack. |
Contoh
Permintaan contoh
http(s)://ros.aliyuncs.com/?Action=CreateChangeSet
&RegionId=cn-hangzhou
&ChangeSetName=MyChangeSet
&Parameters=[{"ParameterKey":"Amount","ParameterValue":"12"}]
&ResourcesToImport=[{"ResourceIdentifier":"{\"VpcId\": \"vpc-2zevx9ios******\"}","LogicalResourceId":"Vpc","ResourceType":"ALIYUN::ECS::VPC"}]
&<Common request parameters>Respons sukses contoh
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateChangeSetResponse>
<ChangeSetId>e85abe0c-6528-43fb-ae93-fdf8de22****</ChangeSetId>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateChangeSetResponse>JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"ChangeSetId" : "e85abe0c-6528-43fb-ae93-fdf8de22****",
"StackId" : "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
}Kode kesalahan
Untuk daftar kode kesalahan, lihat Service error codes.
Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi |
400 | CircularDependency | Circular Dependency Found: {reason}. | Pesan kesalahan yang dikembalikan karena template berisi dependensi melingkar. reason menunjukkan penyebab kesalahan. |
400 | InvalidSchema | {reason}. | Pesan kesalahan yang dikembalikan karena format template tidak valid. reason menunjukkan penyebab kesalahan. |
400 | InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | Pesan kesalahan yang dikembalikan karena properti resource yang dirujuk dalam bagian Outputs template tidak valid. resource menunjukkan nama resource. name menunjukkan nama properti. |
400 | InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | Pesan kesalahan yang dikembalikan karena tipe properti resource yang didefinisikan dalam bagian template tidak valid. resource menunjukkan nama resource. section menunjukkan nama bagian. |
400 | InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | Pesan kesalahan yang dikembalikan karena template berisi referensi yang tidak valid. name menunjukkan nama referensi. referencer menunjukkan nama perujuk. |
400 | InvalidTemplateSection | The template section is invalid: {section}. | Pesan kesalahan yang dikembalikan karena template berisi bagian yang tidak valid. section menunjukkan nama bagian. |
400 | InvalidTemplateVersion | The template version is invalid: {reason}. | Pesan kesalahan yang dikembalikan karena versi template tidak valid. reason menunjukkan penyebab kesalahan. |
400 | StackPolicyValidationFailed | Action denied by stack policy: {reason}. | Pesan kesalahan yang dikembalikan karena operasi yang dilakukan untuk membuat change set gagal divalidasi berdasarkan kebijakan stack. reason menunjukkan penyebab kesalahan. |
400 | StackValidationFailed | {reason}. | Pesan kesalahan yang dikembalikan karena stack gagal divalidasi. reason menunjukkan penyebab kesalahan. |
400 | UnknownUserParameter | The Parameter ({name}) was not defined in template. | Pesan kesalahan yang dikembalikan karena parameter yang ditentukan tidak didefinisikan dalam template. name menunjukkan nama parameter. |
400 | UserParameterMissing | The Parameter {name} was not provided. | Pesan kesalahan yang dikembalikan karena tidak ada nilai yang ditentukan untuk parameter yang didefinisikan dalam template. name menunjukkan nama parameter. |
404 | StackNotFound | The Stack ({name}) could not be found. | Pesan kesalahan yang dikembalikan karena stack tidak ada. name menunjukkan nama atau ID stack. |
409 | ActionInProgress | Stack {name} already has an action ({action}) in progress. | Pesan kesalahan yang dikembalikan karena stack sedang dalam proses perubahan. name menunjukkan nama atau ID stack. action menunjukkan operasi perubahan. |
409 | ChangeSetExists | The ChangeSet ({name}) of Stack ({stack}) already exists. | Pesan kesalahan yang dikembalikan karena change set dengan nama yang sama sudah ada. name menunjukkan nama change set. stack menunjukkan nama atau ID stack yang terkait dengan change set. |
409 | StackExists | The Stack ({name}) already exists. | Pesan kesalahan yang dikembalikan karena stack dengan nama yang sama sudah ada. name menunjukkan nama stack. |
404 | TemplateNotFound | The Template ({ ID }) could not be found. | Pesan kesalahan yang dikembalikan karena template tidak ada. ID menunjukkan ID template. |
404 | TemplateNotFound | The Template { ID } with version { version } could not be found. | Pesan kesalahan yang dikembalikan karena template atau versi template tidak ada. ID menunjukkan ID template. version menunjukkan versi template. |