Saat Anda mengubah properti resource kustom dalam templat, Resource Orchestration Service (ROS) mengirim permintaan resource kustom dengan RequestType diatur ke Update. Kode resource kustom tidak perlu mendeteksi perubahan tersebut karena panggilan Update sudah menunjukkan bahwa properti telah dimodifikasi.
Request
Permintaan update berisi bidang-bidang berikut:
- RequestType
Diatur ke Update.
- ResponseURL
URL jaringan publik yang telah ditandatangani sebelumnya dan digunakan oleh penyedia resource kustom untuk mengirim respons ke ROS.
- IntranetResponseURL
URL jaringan internal yang telah ditandatangani sebelumnya untuk digunakan di dalam ECS. Penyedia resource kustom menggunakan URL ini untuk mengirim respons ke ROS.
- StackId
ID stack yang berisi resource kustom tersebut.
- StackName
Nama stack yang berisi resource kustom tersebut.
- ResourceOwnerId
ID akun Alibaba Cloud yang memiliki stack yang berisi resource kustom tersebut.
- CallerId
ID akun yang melakukan operasi stack. Ini bisa berupa akun Alibaba Cloud atau pengguna Resource Access Management (RAM).
- RegionId
Wilayah stack yang berisi resource kustom tersebut.
- RequestId
ID unik dari permintaan tersebut.
- ResourceType
Jenis resource dari resource kustom, sebagaimana ditentukan oleh developer templat dalam templat ROS. Nama jenis resource dapat memiliki panjang hingga 68 karakter dan boleh berisi huruf, angka, garis bawah (_), tanda at (@), serta tanda hubung (-).
- LogicalResourceId
Nama (ID logis) dari resource kustom, sebagaimana ditentukan oleh developer templat dalam templat ROS.
- PhysicalResourceId
ID fisik yang ditentukan oleh penyedia resource kustom. ID ini bersifat unik bagi penyedia tersebut.
- ResourceProperties
Konten objek Parameters di dalam Properties sebagaimana ditentukan oleh developer templat. Strukturnya didefinisikan oleh penyedia resource kustom.
- OldResourceProperties
Konten objek Parameters di dalam Properties dari konfigurasi resource sebelumnya.
Contoh
{
"RequestType" : "Update",
"RequestId" : "unique id for this update request",
"ResponseURL" : "pre-signed-url-for-update-response",
"IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
"ResourceType" : "Custom::MyCustomResourceType",
"LogicalResourceId" : "name of resource in template",
"PhysicalResourceId" : "custom resource provider-defined physical id",
"StackId" : "stack id",
"StackName" : "stack name",
"ResourceOwnerId": "resource owner id",
"CallerId": "caller id",
"RegionId": "region id",
"ResourceProperties" : {
"key1" : "new-string",
"key2" : [ "new-list" ],
"key3" : { "key4" : "new-map" }
},
"OldResourceProperties" : {
"key1" : "string",
"key2" : [ "list" ],
"key3" : { "key4" : "map" }
}
}
Response
Sukses
Jika permintaan update berhasil, penyedia resource kustom harus mengirim respons ke ROS dengan bidang-bidang berikut:
- Status
Harus bernilai SUCCESS.
- RequestId
ID unik dari permintaan tersebut. Salin nilai ini dari permintaan.
- LogicalResourceId
Nama (ID logis) dari resource kustom, sebagaimana ditentukan oleh developer templat dalam templat ROS. Salin nilai ini dari permintaan.
- StackId
ID stack yang berisi resource kustom tersebut. Salin nilai ini dari permintaan.
- PhysicalResourceId
Nilai ini bersifat immutable. Salin nilai ini dari permintaan.
- Data
Opsional. Pasangan nama-nilai yang didefinisikan oleh penyedia resource kustom dan dikembalikan dalam respons. Anda dapat menggunakan fungsi Fn::GetAtt dalam templat untuk mengakses nilai-nilai ini berdasarkan namanya.
Contoh
{
"Status" : "SUCCESS",
"RequestId" : "unique id for this update request (copied from request)",
"LogicalResourceId" : "name of resource in template (copied from request)",
"StackId" : "stack id (copied from request)",
"PhysicalResourceId" : "custom resource provider-defined physical id",
"Data" : {
"keyThatCanBeUsedInGetAtt1" : "data for key 1",
"keyThatCanBeUsedInGetAtt2" : "data for key 2"
}
}
Gagal
Jika permintaan update gagal, kirim respons ke ROS dengan bidang-bidang berikut:
- Status
Harus bernilai FAILED.
- Reason
Deskripsi alasan kegagalan tersebut.
- RequestId
ID unik dari permintaan tersebut. Salin nilai ini dari permintaan.
- LogicalResourceId
Nama (ID logis) dari resource kustom, sebagaimana ditentukan oleh developer templat dalam templat ROS. Salin nilai ini dari permintaan.
- StackId
ID stack yang berisi resource kustom tersebut. Salin nilai ini dari permintaan.
Contoh
{
"Status" : "FAILED",
"Reason" : "Required failure reason string",
"RequestId" : "unique id for this update request (copied from request)",
"LogicalResourceId" : "name of resource in template (copied from request)",
"StackId" : "stack id (copied from request)"
}