Menampilkan pratinjau informasi stack yang akan dibuat berdasarkan templat tertentu. Anda dapat menggunakan operasi ini untuk memverifikasi resource dalam templat tersebut.
Topik ini memberikan contoh cara membuat stack bernama MyStack di wilayah Tiongkok (Hangzhou) dan menampilkan pratinjau informasi stack tersebut. Dalam contoh ini, isi templat stack adalah {"ROSTemplateFormatVersion":"2015-09-01"}.
Debugging
Parameter permintaan
| Parameter | Tipe | Wajib | Contoh | Deskripsi |
| Action | String | Ya | PreviewStack | Operasi yang ingin Anda lakukan. Atur nilainya ke PreviewStack. |
| DisableRollback | Boolean | Tidak | false | Menentukan apakah akan menonaktifkan rollback untuk sumber daya ketika pembuatan stack gagal. Nilai default: false. Nilai yang valid:
|
| TimeoutInMinutes | Long | Tidak | 60 | Periode timeout yang diperbolehkan untuk membuat stack. Unit: menit. Nilai default: 60. |
| TemplateBody | String | Tidak | {"ROSTemplateFormatVersion":"2015-09-01"} | Struktur 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 akan digunakan. Catatan Anda hanya dapat menentukan salah satu dari parameter StackPolicyBody dan StackPolicyURL. Panjang URL dapat mencapai 1.350 byte. |
| RegionId | String | Ya | cn-hangzhou | ID wilayah dari stack. Anda dapat memanggil operasi DescribeRegions untuk mengkueri daftar wilayah terbaru. |
| StackPolicyBody | String | Tidak | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} | Struktur yang berisi isi kebijakan tumpukan. Isi kebijakan tumpukan harus memiliki panjang 1 hingga 16.384 byte. Catatan Anda hanya dapat menentukan salah satu dari parameter StackPolicyBody dan StackPolicyURL. |
| StackName | String | Tidak | MyStack | Nama stack. Anda dapat menggunakan parameter ini untuk melihat pratinjau stack yang ingin Anda buat. Nama dapat memiliki panjang hingga 255 karakter, serta boleh mengandung angka, huruf, tanda hubung (-), dan garis bawah (_). Nama harus diawali dengan angka atau huruf. Catatan Anda hanya boleh menentukan salah satu dari parameter StackName dan StackId. |
| ClientToken | String | Tidak | 123e4567-e89b-12d3-a456-42665544**** | Token client yang digunakan untuk memastikan idempotensi permintaan. Anda dapat menggunakan client untuk menghasilkan token tersebut, tetapi Anda harus memastikan bahwa token tersebut unik di antara permintaan yang berbeda. Panjang token dapat mencapai 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 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. |
| 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 | ALIYUN::AccountId | Nama parameter N. Jika Anda tidak menentukan nama dan nilai suatu parameter, Resource Orchestration Service (ROS) akan menggunakan nama dan nilai default yang ditentukan dalam templat. Nilai maksimum N: 200. Catatan Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Ya | 151266687691**** | Nilai parameter N. Nilai maksimum N: 200. Catatan Jika Anda menentukan Parameters, Anda harus menentukan Parameters.N.ParameterValue. |
| Parallelism | Long | Tidak | 1 | Jumlah maksimum operasi konkuren yang dapat dilakukan pada sumber daya. Parameter ini hanya berlaku untuk Tumpukan Terraform. Secara default, parameter ini kosong. Anda dapat mengatur parameter ini ke bilangan bulat yang lebih besar dari atau sama dengan 0. Catatan Jika Anda mengatur parameter ini ke bilangan bulat yang lebih besar dari 0, nilai tersebut akan digunakan. Jika Anda mengatur parameter ini ke 0 atau membiarkannya kosong, nilai default Terraform akan digunakan. Dalam kebanyakan kasus, nilai default Terraform adalah 10. |
| TemplateScratchId | String | Tidak | ts-aa9c62feab844a6b**** | ID skenario. Untuk informasi selengkapnya 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. |
| StackId | String | Tidak | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID stack. Anda dapat menggunakan parameter ini untuk melakukan pratinjau stack yang ingin Anda perbarui. Catatan
|
| EnablePreConfig | Boolean | Tidak | false | Menentukan apakah akan melakukan kueri terhadap parameter yang ingin digunakan dalam pemeriksaan awal kepatuhan. Nilai default: false. Nilai yang valid:
|
Untuk informasi selengkapnya tentang parameter permintaan umum, lihat Common parameters.
Parameter respons
| Parameter | Tipe | Contoh | Deskripsi |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F | ID dari permintaan. |
| Stack | Object | Informasi mengenai stack yang dipratinjau. | |
| TemplateDescription | String | One ECS instance. | Deskripsi templat. |
| Parameters | Array of Parameter | Parameter-parameter stack. | |
| ParameterKey | String | ALIYUN::AccountId | Nama parameter tersebut. |
| ParameterValue | String | 151266687691**** | Nilai parameter tersebut. |
| Description | String | One ECS instance. | Deskripsi stack. |
| DisableRollback | Boolean | false | Menunjukkan apakah rollback dinonaktifkan untuk sumber daya ketika stack gagal dibuat. |
| StackName | String | MyStack | Nama stack tersebut. |
| TimeoutInMinutes | Integer | 60 | Periode timeout yang diperbolehkan untuk membuat stack. Unit: menit. |
| StackPolicyBody | Map | Struktur yang berisi isi kebijakan tumpukan. | |
| Resources | Array of Resource | Sumber daya dalam stack tersebut. | |
| LogicalResourceId | String | WebServer | ID logis dari resource tersebut. |
| AcsResourceType | String | ACS::ECS::Instance | Jenis resource yang termasuk dalam suatu Layanan Alibaba Cloud. |
| ResourceType | String | ALIYUN::ECS::Instance | Jenis resource tersebut. |
| Description | String | ECS instance. | Deskripsi resource tersebut. |
| Stack | Map | Informasi mengenai nested stack. Struktur data dari nilai tersebut sama dengan struktur data dari seluruh respons. | |
| RequiredBy | Array of String | ["Resource1", "Resource2"] | Sumber daya yang menjadi dependensi stack. |
| Properties | Map | Properti dari sumber daya tersebut. | |
| Action | String | Add | Aksi yang dilakukan pada sumber daya. Nilai yang valid:
|
| Replacement | String | False | Menunjukkan apakah pembaruan penggantian dilakukan pada templat. Nilai yang valid:
Catatan Parameter ini hanya dikembalikan jika parameter Action diatur ke Modify. |
| PhysicalResourceId | String | i-a1b2c3*** | ID fisik dari resource tersebut. Parameter ini hanya dikembalikan jika parameter Action diatur ke Modify atau Remove. |
| RegionId | String | cn-hangzhou | ID wilayah dari stack tersebut. |
| Log | Object | Log yang dihasilkan saat stack dijalankan. | |
| TerraformLogs | Array of TerraformLog | Log yang dihasilkan saat menjalankan Terraform stack. Parameter ini hanya dikembalikan jika stack tersebut merupakan Terraform stack. Catatan Anda dapat menggunakan parameter ini untuk melihat pratinjau log dari Terraform stack. | |
| Command | String | apply | Nama perintah Terraform. Nilai yang valid:
Untuk informasi selengkapnya tentang perintah Terraform, lihat Basic CLI Features. |
| Stream | String | stdout | Aliran output. Nilai yang valid:
|
| Content | String | Apply complete! Resources: 42 added, 0 changed, 0 destroyed. | Konten dari aliran output yang dikembalikan setelah perintah dijalankan. |
Contoh
Permintaan contoh
http(s)://ros.aliyuncs.com/?Action=PreviewStack
&TemplateBody={"ROSTemplateFormatVersion":"2015-09-01"}
&StackName=MyStack
&RegionId=cn-hangzhou
&<Common request parameters>Respons sukses contoh
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<PreviewStackResponse>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
<Stack>
<TemplateDescription>One ECS instance.</TemplateDescription>
<Parameters>
<ParameterKey>ALIYUN::AccountId</ParameterKey>
<ParameterValue>151266687691****</ParameterValue>
</Parameters>
<Description>One ECS instance.</Description>
<DisableRollback>false</DisableRollback>
<StackName>MyStack</StackName>
<TimeoutInMinutes>60</TimeoutInMinutes>
<Resources>
<LogicalResourceId>WebServer</LogicalResourceId>
<AcsResourceType>ACS::ECS::Instance</AcsResourceType>
<ResourceType>ALIYUN::ECS::Instance</ResourceType>
<Description>ECS instance.</Description>
<RequiredBy>["Resource1", "Resource2"]</RequiredBy>
<Action>Add</Action>
<Replacement>False</Replacement>
</Resources>
<RegionId>cn-hangzhou</RegionId>
<Log>
<TerraformLogs>
<Command>apply</Command>
<Stream>stdout</Stream>
<Content>Apply complete! Resources: 42 added, 0 changed, 0 destroyed.</Content>
</TerraformLogs>
</Log>
</Stack>
</PreviewStackResponse>JSON format
HTTP/1.1 200 OK
Content-Type:application/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,
"Resources" : {
"LogicalResourceId" : "WebServer",
"AcsResourceType" : "ACS::ECS::Instance",
"ResourceType" : "ALIYUN::ECS::Instance",
"Description" : "ECS instance.",
"RequiredBy" : "[\"Resource1\", \"Resource2\"]",
"Action" : "Add",
"Replacement" : "False"
},
"RegionId" : "cn-hangzhou",
"Log" : {
"TerraformLogs" : {
"Command" : "apply",
"Stream" : "stdout",
"Content" : "Apply complete! Resources: 42 added, 0 changed, 0 destroyed."
}
}
}
}Kode kesalahan
Untuk daftar kode kesalahan, lihat Service error codes.
Untuk informasi selengkapnya tentang kesalahan umum yang berlaku untuk semua operasi, lihat Common error codes.
Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi |
400 | CircularDependency | Circular Dependency Found: {reason}. | Pesan error yang dikembalikan karena templat berisi ketergantungan sirkular. reason menunjukkan penyebab error tersebut. |
400 | InvalidSchema | {reason}. | Pesan error yang dikembalikan karena format templat tidak valid. reason menunjukkan penyebab error tersebut. |
400 | InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | Pesan error yang dikembalikan karena properti resource yang dirujuk di bagian Outputs pada templat tidak valid. resource menunjukkan nama resource. name menunjukkan nama properti. |
400 | InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | Pesan error yang dikembalikan karena tipe properti resource yang didefinisikan dalam suatu bagian templat tidak valid. resource menunjukkan nama resource. section menunjukkan nama bagian. |
400 | InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | Pesan error yang dikembalikan karena templat berisi referensi yang tidak valid. name menunjukkan nama referensi. referencer menunjukkan nama referencer. |
400 | InvalidTemplateSection | The template section is invalid: {section}. | Pesan error yang dikembalikan karena templat berisi bagian yang tidak valid. section menunjukkan nama bagian tersebut. |
400 | InvalidTemplateVersion | The template version is invalid: {reason}. | Pesan error yang dikembalikan karena versi templat tidak valid. reason menunjukkan penyebab error tersebut. |
400 | StackValidationFailed | {reason}. | Pesan error yang dikembalikan karena stack gagal divalidasi. reason menunjukkan penyebab error tersebut. |
400 | UnknownUserParameter | The Parameter ({name}) was not defined in template. | Pesan error yang dikembalikan karena parameter yang ditentukan tidak didefinisikan dalam templat. name menunjukkan nama parameter tersebut. |
400 | UserParameterMissing | The Parameter {name} was not provided. | Pesan error yang dikembalikan karena tidak ada nilai yang ditentukan untuk parameter yang didefinisikan dalam templat. name menunjukkan nama parameter tersebut. |
409 | StackExists | The Stack ({name}) already exists. | Pesan error yang dikembalikan karena stack dengan nama yang sama sudah ada. name menunjukkan nama stack. |
404 | TemplateNotFound | The Template ({ ID }) could not be found. | Pesan error yang dikembalikan karena templat tidak ada. ID menunjukkan ID templat. |
404 | TemplateNotFound | The Template { ID } with version { version } could not be found. | Pesan error yang dikembalikan karena templat atau versi templat tidak ada. ID menunjukkan ID templat. version menunjukkan versi templat. |