All Products
Search
Document Center

Resource Orchestration Service:Ikhtisar

Last Updated:Jun 04, 2026

Custom resources memungkinkan Anda menyematkan logika kustom dalam template ROS. ROS menjalankan logika tersebut saat Anda membuat, memperbarui, atau menghapus stack. Gunakan custom resources untuk mengelola jenis resource yang tidak didukung secara native oleh ROS, sehingga semua resource dapat dikelola dalam satu stack.

Tentang custom resources

Definisikan custom resource dalam template menggunakan tipe resource ALIYUN::ROS::CustomResource atau Custom::MyCustomResourceTypeName. Setiap custom resource memerlukan service token yang menentukan tujuan pengiriman permintaan ROS, seperti topik dan antrian SMQ (Simple Message Queue (formerly MNS)), fungsi Function Compute (FC), atau layanan HTTP dan HTTPS.

Custom resource harus mengirim respons ke URL yang ditandatangani sebelumnya. Jika tidak ada respons yang dikirim, operasi stack akan gagal. Gunakan ResponseURL untuk merespons melalui jaringan publik dan IntranetResponseURL untuk merespons melalui jaringan internal Alibaba Cloud.

Cara kerja custom resources

Operasi custom resource melibatkan tiga entitas:

  • Developer template: Membuat template yang berisi tipe custom resource, service token, dan data masukan.

  • Penyedia custom resource: Memiliki custom resource, menentukan cara menangani dan merespons permintaan ROS, serta menyediakan service token untuk developer template.

  • ROS: Mengirim permintaan ke service token yang ditentukan dalam template selama operasi stack, lalu menunggu respons sebelum melanjutkan.

Developer template dan penyedia custom resource dapat merupakan orang atau entitas yang sama. Alur kerja custom resource:

  1. Developer template mendefinisikan custom resource dalam template dengan service token yang diperlukan dan parameter data masukan opsional.

    Service token menentukan tujuan pengiriman permintaan ROS, seperti Nama Sumber Daya Alibaba Cloud (ARN) topik MNS atau ARN fungsi FC, sebagaimana didefinisikan dalam ALIYUN::ROS::CustomResource. Penyedia custom resource mendefinisikan struktur service token dan data masukan.

  2. Saat Anda membuat, memperbarui, atau menghapus custom resource, ROS mengirim permintaan ke service token yang ditentukan. Service token tidak dibatasi berdasarkan wilayah.

    Permintaan ROS mencakup tipe permintaan, URL respons yang telah ditandatangani sebelumnya, dan metadata lainnya sebagaimana dijelaskan dalam Custom resource request objects.

    Contoh permintaan:

    {
       "RequestType" : "Create",
       "RequestId" : "unique id for this create request",
       "ResponseURL" : "pre-signed-url-for-create-response",
       "IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
       "ResourceType" : "Custom::MyCustomResourceType",
       "LogicalResourceId" : "name of resource in template",
       "StackId" : "stack id",
       "StackName" : "stack name",
       "ResourceOwnerId": "resource owner id",
       "CallerId": "caller id",
       "RegionId": "region id",
       "ResourceProperties" : {
          "key1" : "string",
          "key2" : [ "list" ],
          "key3" : { "key4" : "map" }
       }
    }                                 
  3. Penyedia custom resource memproses permintaan dan mengembalikan respons JSON SUCCESS atau FAILED ke URL yang telah ditandatangani sebelumnya.

    Respons tersebut dapat mencakup data keluaran jika berhasil atau pesan kesalahan jika gagal, sebagaimana dijelaskan dalam Custom resource response objects.

    Penyedia harus mendengarkan dan merespons permintaan tersebut. Sebagai contoh, penyedia berbasis MNS mendengarkan pada ARN topik yang ditentukan. ROS menunggu respons di URL yang telah ditandatangani sebelumnya.

    Contoh respons:

    {
       "Status" : "SUCCESS",
       "RequestId" : "unique id for this create request (copied from request)",
       "LogicalResourceId" : "name of resource in template (copied from request)",
       "StackId" : "stack id (copied from request)",
       "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor",
       "Data" : {
          "keyThatCanBeUsedInGetAtt1" : "data for key 1",
          "keyThatCanBeUsedInGetAtt2" : "data for key 2"
       }
    }
  4. Setelah ROS menerima respons SUCCESS, ROS melanjutkan operasi stack. Respons FAILED atau tidak adanya respons menyebabkan operasi gagal. Developer template dapat mengambil data keluaran dari respons dengan menggunakan fungsi Fn::GetAtt.