Ketika terjadi perubahan pada properti resource kustom dalam template, Resource Orchestration Service (ROS) mengirimkan permintaan ke penyedia resource kustom. Bidang RequestType dalam permintaan diatur ke Update. Kode resource kustom tidak perlu mendeteksi perubahan karena ia mengetahui bahwa propertinya telah berubah setelah Update dipanggil.
Permintaan
Permintaan Update mencakup bidang-bidang berikut:
RequestType
Bidang ini diatur ke Update.
ResponseURL
URL publik yang telah ditandatangani. URL ini menerima respons dari penyedia resource kustom ke ROS.
IntranetResponseURL
URL internal yang telah ditandatangani. Anda dapat menggunakan URL ini di Elastic Compute Service (ECS). URL ini menerima respons dari penyedia resource kustom ke ROS.
StackId
ID stack yang berisi resource kustom.
StackName
Nama stack yang berisi resource kustom.
ResourceOwnerId
ID akun Alibaba Cloud tempat stack dengan resource kustom dimiliki.
CallerId
ID akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang digunakan untuk melakukan operasi ini.
RegionId
ID wilayah dari stack yang berisi resource kustom.
RequestId
ID unik dari permintaan.
ResourceType
Tipe resource yang dipilih oleh pengembang template untuk resource kustom dalam template. Nama tipe resource kustom dapat mencapai panjang hingga 68 karakter dan dapat berisi huruf, angka, garis bawah (_), at signs (@), dan tanda hubung (-).
LogicalResourceId
Nama (ID logis) yang ditentukan oleh pengembang template untuk resource kustom dalam template.
PhysicalResourceId
ID fisik yang didefinisikan oleh penyedia resource kustom. ID ini unik bagi penyedia.
ResourceProperties
Bidang ini berisi parameter dalam bagian Properties dari permintaan yang dikirim oleh pengembang template. Isi tersebut didefinisikan oleh penyedia resource kustom.
OldResourceProperties
Bidang ini berisi parameter asli dalam bagian Properties yang didefinisikan oleh pengembang template.
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" }
}
} Respons
Sukses
Setelah permintaan Update dikirim, penyedia resource kustom harus mengirimkan respons yang mencakup bidang-bidang berikut ke ROS:
Status
Hanya SUCCESS yang dikembalikan untuk bidang ini.
RequestId
ID unik dari permintaan. Nilai respons ini harus disalin dari permintaan.
LogicalResourceId
Nama (ID logis) yang ditentukan oleh pengembang template untuk resource kustom dalam template. Nilai respons ini harus disalin dari permintaan.
StackId
ID stack yang berisi resource kustom. Nilai respons ini harus disalin dari permintaan.
PhysicalResourceId
Nilai bidang ini tidak dapat diubah. Nilai respons ini harus disalin dari permintaan.
Data
Opsional. Pasangan nama-nilai yang akan dikirim dalam respons. Anda dapat menggunakan fungsi Fn::GetAtt untuk mengakses nilai yang disediakan di sini berdasarkan nama dalam template.
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, penyedia resource kustom harus mengirimkan respons yang mencakup bidang-bidang berikut ke ROS:
Status
Hanya FAILED yang dikembalikan untuk bidang ini.
Reason
Alasan kegagalan respons.
RequestId
ID unik dari permintaan. Nilai respons ini harus disalin dari permintaan.
LogicalResourceId
Nama (ID logis) yang ditentukan oleh pengembang template untuk resource kustom dalam template. Nilai respons ini harus disalin dari permintaan.
StackId
ID stack yang berisi resource kustom. Nilai respons ini harus disalin 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)"
}