Membuat stack.
Stack adalah kumpulan resource Resource Orchestration Service (ROS) yang dapat dikelola sebagai satu kesatuan. Untuk membuat kumpulan resource tersebut, Anda perlu membuat stack. Untuk informasi selengkapnya tentang stack, lihat Overview.
Saat memanggil operasi ini, perhatikan batasan berikut:
- Anda dapat membuat hingga 200 stack dalam satu Akun Alibaba Cloud.
- Anda dapat membuat hingga 200 resource dalam satu stack.
Topik ini memberikan contoh cara membuat stack bernama MyStack di wilayah China (Hangzhou), dengan body template stack berupa {"ROSTemplateFormatVersion":"2015-09-01"}.
Debugging
Parameter permintaan
| Parameter | Type | Wajib | Contoh | Deskripsi |
| Action | String | Ya | CreateStack | Operasi yang ingin Anda lakukan. Tetapkan nilainya ke CreateStack. |
| DisableRollback | Boolean | Tidak | false | Menentukan apakah akan menonaktifkan rollback untuk sumber daya ketika pembuatan stack gagal. Nilai default: false. Nilai yang valid:
|
| TemplateBody | String | Tidak | {"ROSTemplateFormatVersion":"2015-09-01"} | Struktur yang berisi badan templat. Panjang badan templat harus antara 1 hingga 524.288 byte. Jika panjang badan templat melebihi batas atas tersebut, kami menyarankan Anda menambahkan parameter ke badan permintaan HTTP POST untuk mencegah kegagalan permintaan yang disebabkan oleh URL yang terlalu panjang. Catatan Anda hanya boleh menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, TemplateId, dan TemplateScratchId. |
| StackPolicyURL | String | Tidak | oss://ros-stack-policy/demo | URL file yang berisi kebijakan stack. URL tersebut 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. Ukuran file kebijakan dapat mencapai 16.384 byte. Jika Anda tidak menentukan ID wilayah bucket OSS, nilai parameter RegionId yang akan digunakan. Catatan Anda hanya dapat menentukan salah satu dari parameter StackPolicyBody dan StackPolicyURL. Panjang URL dapat mencapai 1.350 byte. |
| TimeoutInMinutes | Long | Tidak | 10 | Periode timeout yang diizinkan untuk membuat stack.
|
| StackPolicyBody | String | Tidak | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} | Struktur yang berisi isi stack policy. Isi stack policy harus memiliki panjang 1 hingga 16.384 byte. Catatan Anda hanya dapat menentukan salah satu dari parameter StackPolicyBody dan StackPolicyURL. |
| StackName | String | Ya | MyStack | Nama stack. Nama dapat memiliki panjang hingga 255 karakter, dan dapat berisi angka, huruf, tanda hubung (-), serta garis bawah (_). Nama harus diawali dengan huruf. |
| RegionId | String | Ya | cn-hangzhou | ID wilayah dari stack. Anda dapat memanggil operasi DescribeRegions untuk mengkueri daftar wilayah terbaru. |
| ClientToken | String | Tidak | 123e4567-e89b-12d3-a456-42665544**** | Token client yang digunakan untuk memastikan idempotensi permintaan. Anda dapat menggunakan client untuk menghasilkan nilai tersebut, tetapi harus memastikan bahwa nilainya unik di antara permintaan yang berbeda. Token dapat memiliki panjang hingga 64 karakter, dan dapat berisi huruf, angka, tanda hubung (-), serta garis bawah (_). Untuk informasi selengkapnya, lihat Ensure idempotence. |
| TemplateURL | String | Tidak | oss://ros-template/demo | URL dari file yang berisi isi templat. URL tersebut harus mengarah ke templat 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. Isi templat dapat memiliki panjang maksimum 524.288 byte. Jika Anda tidak menentukan ID wilayah Bucket OSS, nilai parameter RegionId akan digunakan. Catatan Anda hanya boleh menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, TemplateId, dan TemplateScratchId. |
| RamRoleName | String | Tidak | test-role | Nama role RAM. ROS mengasumsikan role RAM untuk membuat stack dan menggunakan kredensial role tersebut untuk memanggil API layanan Alibaba Cloud. ROS mengasumsikan role RAM untuk melakukan operasi pada stack. Jika Anda memiliki izin untuk melakukan operasi pada stack tetapi tidak memiliki izin untuk menggunakan role RAM, ROS tetap akan mengasumsikan role RAM tersebut. Anda harus memastikan bahwa hak istimewa minimal diberikan kepada role RAM. Jika Anda tidak menentukan parameter ini, ROS akan mengasumsikan role yang sudah ada dan terkait dengan stack tersebut. Jika tidak tersedia role apa pun, ROS akan menggunakan kredensial temporary yang dihasilkan dari kredensial akun Anda. Nama tersebut dapat memiliki panjang hingga 64 karakter. |
| DeletionProtection | String | Tidak | Enabled | Menentukan apakah akan mengaktifkan perlindungan penghapusan untuk stack. Nilai default: Disabled. Nilai yang valid:
Catatan Parameter DeletionProtection yang Anda tentukan untuk tumpukan akar berlaku juga untuk tumpukan bersarangnya. |
| CreateOption | String | Tidak | KeepStackOnCreationComplete | Opsi untuk stack setelah Anda membuat stack tersebut. Nilai default: KeepStackOnCreationComplete. Nilai yang valid:
|
| TemplateId | String | Tidak | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID templat. Parameter ini berlaku untuk Template bersama dan template pribadi. Catatan Anda hanya boleh menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, TemplateId, dan TemplateScratchId. |
| TemplateVersion | String | Tidak | v1 | Versi templat. Parameter ini hanya berlaku ketika parameter TemplateId ditentukan. |
| Parameters.N.ParameterKey | String | Ya | InstanceId | Nama parameter N yang didefinisikan dalam templat. Jika Anda tidak menentukan nama dan nilai parameter, ROS akan menggunakan nama dan nilai default yang terdapat di dalam templat. Nilai maksimum N: 200. Nama harus terdiri dari 1 hingga 128 karakter, serta tidak boleh mengandung Catatan Parameter Parameters bersifat opsional. Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterKey dan Parameters.N.ParameterValue secara bersamaan. |
| Parameters.N.ParameterValue | String | Ya | i-xxxxxx | Nilai parameter N yang didefinisikan dalam templat. Nilai maksimum N: 200. Panjang nilai tersebut dapat mencapai 128 karakter, dan tidak boleh mengandung Catatan Parameter Parameters bersifat opsional. Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterKey dan Parameters.N.ParameterValue sekaligus. |
| NotificationURLs.N | String | Tidak | http://example.com/ros-event | URL callback yang digunakan untuk menerima event stack N. Nilai yang valid:
Nilai maksimum N: 5. Saat status stack berubah, ROS mengirim notifikasi event ke URL yang ditentukan. Jika rollback diaktifkan untuk stack tersebut, notifikasi event dikirim ketika 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. Kode contoh berikut menunjukkan isi notifikasi event: |
| Tags.N.Key | String | Ya | usage | Kunci dari tag N yang ingin Anda tambahkan ke stack. Nilai valid untuk N: 1 hingga 20. Catatan
|
| Tags.N.Value | String | Tidak | test | Nilai tag N yang ingin Anda tambahkan ke stack. Nilai N yang valid: 1 hingga 20. Catatan Tag stack akan dipropagasikan ke setiap resource stack yang mendukung fitur tag. Untuk informasi selengkapnya, lihat Propagate tags. |
| ResourceGroupId | String | Tidak | rg-acfmxazb4ph6aiy**** | ID kelompok sumber daya. Jika Anda tidak menentukan parameter ini, stack akan ditambahkan ke kelompok sumber daya default. Untuk informasi selengkapnya tentang kelompok sumber daya, lihat bagian "Resource Group" dalam topik What is Resource Management?. |
| Parallelism | Long | Tidak | 1 | Jumlah maksimum operasi konkuren yang dapat dilakukan pada sumber daya. Secara default, parameter ini kosong. Anda dapat mengatur parameter ini ke bilangan bulat yang lebih besar dari atau sama dengan 0. Catatan
|
| TemplateScratchId | String | Tidak | ts-aa9c62feab844a6b**** | ID skenario. Untuk informasi lebih lanjut tentang cara melakukan kueri ID skenario, lihat ListTemplateScratches. Catatan Anda hanya boleh menentukan salah satu dari parameter berikut: TemplateBody, TemplateURL, TemplateId, dan TemplateScratchId. |
| TemplateScratchRegionId | String | Tidak | cn-hangzhou | ID wilayah dari skenario tersebut. Nilai default-nya sama dengan nilai parameter RegionId. Anda dapat memanggil operasi DescribeRegions untuk mengkueri daftar wilayah terbaru. |
Untuk informasi selengkapnya tentang parameter permintaan umum, lihat Common parameters.
Parameter respons
| Parameter | Type | Contoh | Deskripsi |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F | ID dari permintaan tersebut. |
| StackId | String | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID stack. |
Contoh
Permintaan contoh
http(s)://ros.aliyuncs.com/?Action=CreateStack
&StackName=MyStack
&RegionId=cn-hangzhou
&Parameters=[{"ParameterKey":"InstanceId","ParameterValue":"i-xxxxxx"}]
&Tags=[{"Key":"usage"}]
&<Common request parameters>Respons sukses contoh
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateStackResponse>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateStackResponse>JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"StackId" : "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
}Kode kesalahan
Untuk daftar kode kesalahan, lihat Service error codes.
Kode kesalahan | Pesan kesalahan | Kode status HTTPS | Deskripsi |
CircularDependency | Circular Dependency Found: {reason}. | 400 | Pesan kesalahan yang dikembalikan karena templat berisi dependensi melingkar. reason menunjukkan penyebab kesalahan. |
InvalidSchema | {reason}. | 400 | Pesan kesalahan yang dikembalikan karena format templat tidak valid. reason menunjukkan penyebab kesalahan. |
InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | 400 | Pesan kesalahan yang dikembalikan karena properti resource yang dirujuk dalam bagian Outputs templat tidak valid. resource menunjukkan nama resource. name menunjukkan nama properti. |
InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | 400 | Pesan kesalahan yang dikembalikan karena tipe properti resource yang didefinisikan dalam bagian templat tidak valid. resource menunjukkan nama resource. section menunjukkan nama bagian. |
InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | 400 | Pesan kesalahan yang dikembalikan karena templat berisi referensi yang tidak valid. name menunjukkan nama referensi. referencer menunjukkan nama perujuk. |
InvalidTemplateSection | The template section is invalid: {section}. | 400 | Pesan kesalahan ditampilkan karena Templat berisi bagian yang tidak valid. section menunjukkan nama bagian tersebut. |
InvalidTemplateVersion | The template version is invalid: {reason}. | 400 | Pesan kesalahan yang dikembalikan karena versi templat tidak valid. reason menunjukkan penyebab kesalahan. |
StackValidationFailed | {reason}. | 400 | Pesan kesalahan yang dikembalikan karena validasi stack gagal. reason menunjukkan penyebab kesalahan. |
UnknownUserParameter | The Parameter ({name}) was not defined in template. | 400 | Pesan kesalahan yang dikembalikan karena parameter yang ditentukan tidak didefinisikan dalam templat. name menunjukkan nama parameter. |
UserParameterMissing | The Parameter {name} was not provided. | 400 | Pesan kesalahan yang dikembalikan karena tidak ada nilai yang ditentukan untuk parameter yang didefinisikan dalam templat. name menunjukkan nama parameter. |
ActionInProgress | Stack {name} already has an action ({action}) in progress. | 409 | Pesan kesalahan yang dikembalikan karena stack sedang dalam proses perubahan. name menunjukkan nama atau ID stack. action menunjukkan operasi perubahan. |
StackExists | The Stack ({name}) already exists. | 409 | Pesan kesalahan yang dikembalikan karena stack dengan nama yang sama sudah ada. name menunjukkan nama stack. |
TemplateNotFound | The Template ({ ID }) could not be found. | 404 | Pesan kesalahan yang dikembalikan karena templat yang ditentukan tidak ada. ID menunjukkan ID templat. |
TemplateNotFound | The Template { ID } with version { version } could not be found. | 404 | Pesan kesalahan yang dikembalikan karena templat atau versi templat yang ditentukan tidak ada. ID menunjukkan ID templat. version menunjukkan versi templat. |