全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::ROS::CustomResource

更新时间:Dec 05, 2025

ALIYUN::ROS::CustomResource memungkinkan Anda membuat resource kustom.

Dalam templat ROS, Anda dapat menggunakan tipe resource ALIYUN::ROS::CustomResource atau Custom::String untuk mendefinisikan resource kustom.

Resource kustom memungkinkan Anda menulis logika konfigurasi kustom dalam templat ROS. ROS menjalankan logika ini selama operasi stack, seperti saat membuat, memperbarui, atau menghapus stack. Untuk informasi selengkapnya, lihat Ikhtisar resource kustom.

Resource kustom harus mengirimkan respons ke URL respons yang telah ditandatangani sebelumnya. Jika ROS tidak menerima respons tersebut, operasi stack akan gagal. ResponseURL memungkinkan respons melalui jaringan publik, sedangkan InnerResponseURL memungkinkan respons melalui jaringan pribadi Alibaba Cloud.

Sintaks

{
  "Type": "ALIYUN::ROS::CustomResource",
  "Properties": {
    "ServiceToken": String,
    "Timeout": Number,
    "Parameters": Map
  }
}

Properti

Properti

Tipe

Wajib

Izinkan pembaruan

Deskripsi

Batasan

ServiceToken

String

Ya

Tidak

Token layanan yang diberikan penyedia layanan kepada developer templat untuk mengakses layanan tersebut.

Saat ini, didukung fungsi Function Compute, topik SMQ (

Simple Message Queue (formerly MNS)

) , antrian SMQ, serta HTTP & HTTPS.

Panjangnya bisa mencapai 512 karakter.

Nilai yang valid:

  • FC 2.0: acs:fc:<region_id>:<account_id>:services/<service_name>/functions/<function_name>

  • FC 3.0: acs:fc:<region_id>:<account_id>:functions/<function_name>

  • Antrian SMQ: acs:mns:<region_id>:<account_id>:queues/<queue_name>

  • Topik SMQ: acs:mns:<region_id>:<account_id>:topics/<topic_name>

  • HTTP & HTTPS: web[options]:<url>

    options adalah parameter opsional. Nilai yang valid adalah sync dan idempotent. Anda dapat menentukan kedua nilai tersebut, dipisahkan dengan koma (,).

    sync: Menentukan permintaan sinkron. ROS menggunakan respons langsung dari permintaan tersebut dan tidak menunggu callback ke URL yang telah ditandatangani sebelumnya. Secara default, permintaan bersifat asinkron dan menunggu callback ke URL yang telah ditandatangani sebelumnya.

    idempotent: Menjadikan permintaan pembuatan bersifat idempoten. Jika terjadi error jaringan atau error 500, ROS akan mencoba ulang permintaan tersebut. Secara default, permintaan pembuatan tidak bersifat idempoten. Permintaan pembaruan dan penghapusan harus selalu idempoten.

Contoh:

  • acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function

  • acs:mns:cn-hangzhou:123456789:queues/test-queue

  • acs:mns:cn-hangzhou:123456789:topics/test-topic

  • web:https://example.com

  • web[sync]:http://example.com

  • web[sync,idempotent]:https://example.com

Timeout

Number

Ya

Ya

Periode timeout bagi penyedia layanan kustom untuk memberikan respons. Satuan: detik.

  • Jika ServiceToken menentukan fungsi FC, topik SMQ, antrian SMQ, atau permintaan HTTP/HTTPS asinkron, nilai default Timeout adalah 60. Nilainya harus berada di antara 1 hingga 43200.

  • Jika ServiceToken menentukan permintaan HTTP/HTTPS sinkron, Timeout diabaikan. Periode timeout selalu 10 detik.

Parameters

Map

Tidak

Ya

Parameter yang akan diteruskan ke penyedia layanan kustom. Tentukan properti ini sesuai spesifikasi dari penyedia layanan kustom.

Tidak ada.

Nilai kembali

Fn::GetAtt

  • Outputs: Data yang dikembalikan oleh penyedia layanan kustom, berupa objek map.

  • *: Kunci dalam map Outputs.

Contoh

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  CustomResource:
    Type: ALIYUN::ROS::CustomResource
    Properties:
      ServiceToken: acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function
      Parameters:
        Key1: Value1
        Key2: Value2
      Timeout: 60
Parameters:
  Parameters:
    Type: Json
    Description: Parameters to be passed to service provider.
Outputs:
  Outputs:
    Description: Output data received from service provider.
    Value:
      Fn::GetAtt:
        - CustomResource
        - Outputs
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "CustomResource": {
      "Type": "ALIYUN::ROS::CustomResource",
      "Properties": {
        "ServiceToken": "acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function",
        "Parameters": {
          "Key1": "Value1",
          "Key2": "Value2"
        },
        "Timeout": 60
      }
    }
  },
  "Parameters": {
    "Parameters": {
      "Type": "Json",
      "Description": "Parameters to be passed to service provider."
    }
  },
  "Outputs": {
    "Outputs": {
      "Description": "Output data received from service provider.",
      "Value": {
        "Fn::GetAtt": [
          "CustomResource",
          "Outputs"
        ]
      }
    }
  }
}

Catatan

  • Menentukan nama untuk tipe resource kustom

    Untuk resource kustom, Anda dapat menggunakan ALIYUN::ROS::CustomResource sebagai tipe resource atau menentukan nama tipe resource Anda sendiri, misalnya Custom::MyCustomResourceTypeName.

    Nama tipe resource kustom dapat berisi huruf, angka, dan karakter khusus berikut: _@-. Panjang nama maksimal 68 karakter, dan tidak dapat diubah selama pembaruan.

    Penggunaan nama tipe resource kustom membantu Anda membedakan jenis resource kustom dalam stack secara cepat. Misalnya, jika Anda memiliki dua resource kustom yang melakukan dua tes ping berbeda, Anda dapat menentukan tipe resource sebagai Custom::PingTester alih-alih ALIYUN::ROS::CustomResource agar lebih mudah dikenali sebagai tester ping.

  • Mengganti resource kustom selama pembaruan

    PhysicalResourceId suatu resource tidak dapat diganti selama pembaruan di ROS.

  • Mengambil nilai kembali

    Untuk resource kustom, nilai kembali ditentukan oleh penyedia layanan kustom. Anda dapat mengambil nilai-nilai tersebut dari properti yang ditentukan penyedia dengan memanggil Fn::GetAtt.