All Products
Search
Document Center

Resource Orchestration Service:UpdateStackTemplateByResources

Last Updated:Dec 16, 2025

Menghilangkan drift stack dengan mendeteksi drift terlebih dahulu.

Deskripsi operasi

Batasan: Anda hanya dapat menghilangkan drift pada stack yang telah mengalami drift. Untuk itu, Anda harus terlebih dahulu memanggil operasi DetectStackDrift guna mendeteksi drift pada stack, lalu memanggil operasi GetStackDriftDetectionStatus untuk memeriksa status drift stack dan memastikan bahwa stack tersebut benar-benar mengalami drift, sebelum akhirnya memanggil operasi UpdateStackTemplateByResources untuk menghilangkan drift tersebut.

Pada topik ini, drift dihilangkan untuk stack dengan ID 4a6c9851-3b0f-4f5f-b4ca-a14bf691****. Stack tersebut dideploy di wilayah China (Hangzhou).

Coba sekarang

Coba API ini di OpenAPI Explorer tanpa perlu penandatanganan manual. Panggilan yang berhasil akan secara otomatis menghasilkan contoh kode SDK sesuai dengan parameter Anda. Unduh kode tersebut dengan kredensial bawaan yang aman untuk penggunaan lokal.

Test

RAM authorization

Tabel berikut menjelaskan otorisasi yang diperlukan untuk memanggil API ini. Anda dapat menentukannya dalam kebijakan Resource Access Management (RAM). Kolom pada tabel dijelaskan sebagai berikut:

  • Action: Aksi yang dapat digunakan dalam elemen Action pada pernyataan kebijakan izin RAM untuk memberikan izin guna melakukan operasi tersebut.

  • API: API yang dapat Anda panggil untuk melakukan aksi tersebut.

  • Access level: Tingkat akses yang telah ditentukan untuk setiap API. Nilai yang valid: create, list, get, update, dan delete.

  • Resource type: Jenis resource yang mendukung otorisasi untuk melakukan aksi tersebut. Ini menunjukkan apakah aksi tersebut mendukung izin tingkat resource. Resource yang ditentukan harus kompatibel dengan aksi tersebut. Jika tidak, kebijakan tersebut tidak akan berlaku.

    • Untuk API dengan izin tingkat resource, jenis resource yang diperlukan ditandai dengan tanda bintang (*). Tentukan Nama Sumber Daya Alibaba Cloud (ARN) yang sesuai dalam elemen Resource pada kebijakan.

    • Untuk API tanpa izin tingkat resource, ditampilkan sebagai All Resources. Gunakan tanda bintang (*) dalam elemen Resource pada kebijakan.

  • Condition key: Kunci kondisi yang didefinisikan oleh layanan. Kunci ini memungkinkan kontrol granular, berlaku baik hanya untuk aksi maupun untuk aksi yang terkait dengan resource tertentu. Selain kunci kondisi spesifik layanan, Alibaba Cloud menyediakan serangkaian common condition keys yang berlaku di semua layanan yang didukung RAM.

  • Dependent action: Aksi dependen yang diperlukan untuk menjalankan aksi tersebut. Untuk menyelesaikan aksi tersebut, pengguna RAM atau role RAM harus memiliki izin untuk melakukan semua aksi dependen.

Action

Access level

Resource type

Condition key

Dependent action

ros:UpdateStackTemplateByResources

update

*stack

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

None None

Sintaks permintaan

POST /V2/UpdateStackTemplateByResources HTTP/1.1

Parameter permintaan

Parameter

Type

Required

Description

Example

StackId

string

Yes

ID stack.

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

DryRun

boolean

No

Menentukan apakah hanya akan menampilkan pratinjau templat yang telah dikoreksi dalam permintaan ini. Nilai default: false. Nilai yang valid:

  • true: mengembalikan konten templat yang telah dikoreksi dan tidak melakukan koreksi templat. Setelah Resource Orchestration Service (ROS) membandingkan templat yang telah dikoreksi dengan templat asli, ROS akan menentukan apakah akan menjalankan koreksi tersebut.

  • false: mengoreksi templat untuk menghilangkan drift.

Catatan

Kami menyarankan Anda mengatur parameter DryRun ke true untuk melihat pratinjau templat yang telah dikoreksi. Jika konten templat sesuai harapan, atur parameter DryRun ke false untuk menjalankan koreksi.

false

RegionId

string

Yes

ID wilayah stack. Anda dapat memanggil operasi DescribeRegions untuk menanyakan daftar wilayah terbaru.

cn-hangzhou

ClientToken

string

No

Token client yang digunakan untuk memastikan idempotensi permintaan. Anda dapat menghasilkan nilai ini dari sisi client, tetapi harus memastikan nilainya unik di antara permintaan yang berbeda.

Panjang token maksimal 64 karakter dan dapat berisi huruf, angka, tanda hubung (-), serta garis bawah (_).

Untuk informasi selengkapnya, lihat Cara memastikan idempotensi.

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

TemplateFormat

string

No

Format templat yang dikembalikan. Nilai default: JSON. Nilai yang valid:

  • JSON

  • YAML

JSON

LogicalResourceId

array

No

ID logis resource.

Vpc

string

No

ID logis resource N, yang digunakan untuk memfilter resource. Koreksi templat hanya berlaku untuk resource dalam daftar ini. Secara default, semua resource yang mengalami drift akan dikoreksi.

Jika daftar resource yang dikoreksi berisi resource dalam status DELETED, ROS mungkin akan menyesuaikan resource yang tidak ada dalam daftar tetapi mereferensikan resource yang dihapus tersebut guna memastikan kebenaran templat baru.

WebServer

Untuk informasi selengkapnya tentang parameter permintaan umum, lihat Parameter umum.

Elemen respons

Element

Type

Description

Example

object

RequestId

string

ID permintaan.

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

NewTemplateBody

string

Konten templat setelah dikoreksi.

{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test2\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}

OldTemplateBody

string

Konten templat sebelum dikoreksi.

{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test1\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}

Kode status HTTPKode errorPesan errorDeskripsi
400StackDriftDetectionNotAvailableThere is no complete drift detection for stack ({ID}).Pesan error yang dikembalikan karena belum ada pendeteksian drift yang lengkap pada stack tersebut. ID menunjukkan ID stack.
400StackAlreadyInSyncThis is not need to correct stack drifts, stack ({ID}) is already in sync.Pesan error yang dikembalikan karena tidak ada drift dan koreksi templat tidak diperlukan. ID menunjukkan ID stack.
400CorrectStackDriftsFailure{reason}Pesan error yang dikembalikan karena stack tidak dapat dikoreksi. reason menunjukkan alasan spesifiknya.
404StackNotFoundThe Stack ({name}) could not be found.Pesan error yang dikembalikan karena stack yang ditentukan tidak ditemukan. name menunjukkan nama atau ID stack.
404ResourceNotFoundThe Resource ({name}) could not be found in Stack {stack}.Pesan error yang dikembalikan karena resource yang ditentukan tidak ditemukan dalam stack yang ditentukan. name menunjukkan nama resource, dan stack menunjukkan nama atau ID stack.

Contoh

Respons sukses

JSONformat

{
  "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
  "NewTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test2\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}",
  "OldTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test1\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}"
}

Kode kesalahan

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.