Anda dapat menggunakan resource kustom untuk menyesuaikan konfigurasi logika dalam template. ROS menjalankan konfigurasi logika setiap kali Anda membuat, memperbarui, atau menghapus stack. Jika Anda ingin menggunakan resource yang tidak tersedia sebagai tipe resource ROS, Anda dapat menggunakan resource kustom dalam template. Dengan cara ini, Anda dapat mengelola semua resource terkait dalam satu stack.
Resource kustom
Anda dapat menggunakan ALIYUN::ROS::CustomResource atau Custom::MyCustomResourceTypeName untuk mendefinisikan resource kustom dalam template. Resource kustom memerlukan satu properti: token layanan yang menentukan tujuan pengiriman permintaan oleh ROS. Token layanan bisa berupa fungsi Function Compute, topik MNS, antrian MNS, atau URL HTTP atau HTTPS.
Resource kustom harus mengirimkan respons ke URL yang telah ditandatangani. Jika mereka tidak dapat mengirim respons ke ROS, operasi stack gagal. ResponseURL digunakan untuk mengambil respons melalui Internet. IntranetResponseURL digunakan untuk mengambil respons melalui jaringan internal.
Cara kerja resource kustom
Tindakan yang diambil untuk resource kustom melibatkan entitas berikut:
Pengembang Template: membuat template yang mencakup tipe resource kustom. Pengembang template menentukan token layanan dan semua parameter input dalam template.
Penyedia Resource Kustom: memiliki resource kustom dan menentukan cara menangani serta merespons permintaan dari ROS. Penyedia resource kustom harus menyediakan token layanan yang digunakan oleh pengembang template.
ROS: mengirimkan permintaan ke token layanan tertentu dalam template selama operasi stack, kemudian menunggu respons sebelum melanjutkan dengan operasi stack.
Pengembang template dan penyedia resource kustom bisa menjadi orang atau entitas yang sama, tetapi prosesnya tetap sama. Langkah-langkah berikut menjelaskan cara menyesuaikan resource:
Pengembang template mendefinisikan resource kustom dalam template yang mencakup token layanan dan semua parameter input. Berdasarkan resource kustom, parameter input mungkin diperlukan, sementara token layanan selalu diperlukan.
Token layanan menentukan tujuan pengiriman permintaan oleh ROS, seperti ARN topik MNS atau ARN fungsi Function Compute. Untuk informasi lebih lanjut, lihat ALIYUN::ROS::CustomResource. Token layanan dan struktur data input ditentukan oleh penyedia resource kustom.
Saat Anda menggunakan template untuk membuat, memperbarui, atau menghapus resource kustom, ROS mengirimkan permintaan ke token layanan tertentu. Token layanan dapat digunakan di semua wilayah.
Dalam permintaan, ROS mencakup informasi seperti tipe permintaan dan URL yang telah ditandatangani, ke mana resource kustom mengirimkan respons. Untuk informasi lebih lanjut, lihat Objek Permintaan Resource Kustom.
Data sampel berikut menunjukkan apa yang disertakan ROS dalam permintaan.
{ "RequestType" : "Create", "RequestId" : "id unik untuk permintaan pembuatan ini", "ResponseURL" : "pre-signed-url-for-create-response", "IntranetResponseURL" : "pre-signed-intranet-url-for-create-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "nama resource dalam template", "StackId" : "id stack", "StackName" : "nama stack", "ResourceOwnerId": "id pemilik resource", "CallerId": "id pemanggil", "RegionId": "id wilayah", "ResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }Penyedia resource kustom memproses permintaan ROS dan mengembalikan respons SUCCESS atau FAILED ke URL yang telah ditandatangani. Penyedia resource kustom memberikan respons dalam file berformat JSON dan mengunggah respons ke URL yang telah ditandatangani.
Dalam respons, penyedia resource kustom juga dapat menyertakan pasangan nama-nilai yang dapat diakses oleh pengembang template. Sebagai contoh, respons dapat mencakup data keluaran jika permintaan berhasil atau pesan kesalahan jika permintaan gagal. Untuk informasi lebih lanjut, lihat Objek Respons Resource Kustom.
Penyedia resource kustom bertanggung jawab untuk mendengarkan dan merespons permintaan. Sebagai contoh, untuk notifikasi MNS Alibaba Cloud, penyedia resource kustom harus mendengarkan dan merespons notifikasi yang dikirim ke ARN topik tertentu. ROS menunggu dan mendengarkan respons di lokasi URL yang telah ditandatangani.
Data sampel berikut menunjukkan apa yang dapat disertakan resource kustom dalam respons:
{ "Status" : "SUCCESS", "RequestId" : "id unik untuk permintaan pembuatan ini (disalin dari permintaan)", "LogicalResourceId" : "nama resource dalam template (disalin dari permintaan)", "StackId" : "id stack (disalin dari permintaan)", "PhysicalResourceId" : "id fisik yang didefinisikan vendor yang unik untuk vendor tersebut", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data untuk key 1", "keyThatCanBeUsedInGetAtt2" : "data untuk key 2" } }Setelah ROS memperoleh respons SUCCESS, ROS melanjutkan operasi stack. Jika respons FAILED atau tidak ada respons yang dikembalikan, operasi gagal. Data keluaran dari resource kustom disimpan di lokasi URL yang telah ditandatangani. Pengembang template dapat menggunakan fungsi Fn::GetAtt untuk mengambil data tersebut.