全部产品
Search
文档中心

Resource Orchestration Service:Ikhtisar

更新时间:Jul 02, 2025

Saat membuat template, Anda dapat menambahkan bagian Parameters untuk meningkatkan fleksibilitas dan kemampuan penggunaan ulang template. Nilai parameter tertentu dapat diganti sesuai kebutuhan bisnis saat menggunakan template untuk membuat stack.

Sintaks

Setiap parameter terdiri dari nama parameter dan propertinya. Nama parameter hanya boleh berisi huruf dan angka serta harus unik dalam satu template. Properti Label dapat digunakan untuk mendefinisikan alias parameter.

Tabel berikut menjelaskan properti yang didukung di bagian Parameters.

Properti

Diperlukan

Deskripsi

Type

Ya

Tipe data dari sebuah parameter. Nilai yang valid:

  • String: sebuah string. Contoh: "ecs.s1.medium".

  • Number: bilangan bulat atau bilangan desimal. Contoh: 3.14.

  • CommaDelimitedList: sebuah string yang terdiri dari beberapa nilai. Nilai-nilai tersebut dipisahkan oleh koma (,). Anda dapat menggunakan fungsi Fn::Select untuk mengembalikan nilai berdasarkan indeks. Contoh: "80, foo, bar".

  • Json: sebuah string JSON. Contoh: {"foo": "bar"} atau [1, 2, 3].

  • Boolean: sebuah nilai boolean. Contoh: true atau false.

  • ALIYUN::OOS::Parameter::Value: sebuah parameter umum yang disimpan di Parameter Store dari CloudOps Orchestration Service (OOS). Untuk informasi lebih lanjut, lihat Parameter umum. Contoh: my_image.

  • ALIYUN::OOS::SecretParameter::Value: sebuah parameter terenkripsi yang disimpan di OOS Parameter Store. Untuk informasi lebih lanjut, lihat Parameter enkripsi. Contoh: my_password.

Catatan

Anda tidak dapat menggunakan AllowedPattern untuk memverifikasi parameter tipe ALIYUN::OOS::Parameter::Value dan ALIYUN::OOS::SecretParameter::Value.

Default

Tidak

Nilai default dari sebuah parameter. Jika Anda tidak menentukan nilai untuk parameter template saat membuat stack, Resource Orchestration Service (ROS) akan memeriksa apakah nilai default didefinisikan untuk parameter tersebut di dalam template. Jika nilai default didefinisikan di dalam template, ROS akan menggunakan nilai default tersebut. Jika tidak, kesalahan akan dilaporkan.

Catatan

Anda dapat menyetel nilai default parameter di dalam template menjadi null. Dalam hal ini, parameter ini kosong dan verifikasi untuk parameter ini diabaikan.

AllowedValues

Tidak

Nilai-nilai yang valid untuk sebuah parameter.

AllowedPattern

Tidak

Ekspresi reguler yang mewakili pola yang diizinkan untuk parameter bertipe String yang ditentukan. Jika Anda tidak menentukan parameter bertipe String, kesalahan akan dilaporkan.

Jika Anda menggunakan satu atau lebih karakter khusus berikut, tambahkan dua backslash (\\) sebagai karakter escape sebelum setiap karakter khusus:

*.?+-$^[ ]( ){ }|\/
Catatan

Anda tidak perlu menambahkan karakter escape sebelum tanda hubung (-) yang digunakan sebagai karakter khusus pertama atau terakhir dalam rentang nilai. Contoh: [a-z-].

MaxLength

Tidak

Nilai integer yang menentukan jumlah maksimum karakter yang diizinkan untuk parameter bertipe String.

MinLength

Tidak

Nilai integer yang menentukan jumlah minimum karakter yang diizinkan untuk parameter bertipe String.

MaxValue

Tidak

Nilai numerik yang menentukan nilai numerik maksimum yang diizinkan untuk parameter bertipe Number.

MinValue

Tidak

Nilai numerik yang menentukan nilai numerik minimum yang diizinkan untuk parameter bertipe Number.

NoEcho

Tidak

Jika Anda menyetel properti NoEcho sebuah parameter menjadi true, ROS akan mengembalikan nilai parameter tersebut sebagai asterisk (*). Anda dapat memeriksa apakah ROS mengembalikan nilai parameter saat membuat stack atau melihat stack.

Confirm

Tidak

Menentukan apakah akan memasukkan nilai parameter untuk kedua kalinya jika properti NoEcho dari parameter tersebut disetel menjadi true. Nilai default: false.

Catatan

Anda hanya dapat menyetel properti Confirm menjadi true ketika properti Confirm digunakan untuk parameter bertipe String dan properti NoEcho dari parameter tersebut disetel menjadi true.

Description

Sebuah string yang menjelaskan parameter. Nilai yang valid:

  • zh-cn: menjelaskan parameter dalam bahasa Tionghoa.

  • en: menjelaskan parameter dalam bahasa Inggris.

Catatan

Deskripsi bahasa yang ditentukan hanya ditampilkan berdasarkan bahasa di konsol.

ConstraintDescription

Tidak

Sebuah string yang menjelaskan batasan parameter ketika batasan tersebut dilanggar.

Label

Tidak

Alias dari sebuah parameter. Alias tersebut dikodekan dalam UTF-8. Saat formulir web dibuat berdasarkan template, nilai dari Label dapat dipetakan ke nama parameter.

AssociationProperty

Tidak

Sebuah properti dari Parameters. Properti ini digunakan untuk secara otomatis memverifikasi validitas nilai parameter dan menyediakan serangkaian nilai yang valid untuk parameter tersebut.

Untuk informasi lebih lanjut tentang nilai-nilai AssociationProperty yang didukung oleh ROS dan contohnya, lihat AssociationProperty dan AssociationPropertyMetadata.

AssociationPropertyMetadata

Tidak

Sebuah peta metadata yang menentukan batasan AssociationProperty dan digunakan untuk menyaring item yang cocok.

Properti ini bertipe Map. Untuk informasi lebih lanjut tentang hubungan antara AssociationProperty dan AssociationPropertyMetadata serta contohnya, lihat AssociationProperty dan AssociationPropertyMetadata.

TextArea

Tidak

Menentukan apakah parameter mendukung pemisah baris. Nilai yang valid:

  • true

  • false (default)

Pada contoh berikut, parameter Content mendukung pemisah baris:

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Content:
    Type: String
    TextArea: true
Outputs:
  TestContent:
    Value:
      Ref: Content

Required

Tidak

Menentukan apakah parameter diperlukan. Nilai yang valid:

  • true: Parameter diperlukan dan tidak boleh kosong.

  • false: Parameter bersifat opsional.

Pada contoh berikut, parameter ECSInstanceId diperlukan.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  CreateNewECS:
    Type: Boolean
    Label: Apakah Membuat Instance Baru
    Default: false
  ECSInstanceId:
    Type: String
    Required: true  # Gunakan Required untuk menentukan apakah parameter diperlukan (efek frontend).
    Default: Null
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Equals:
            - ${CreateNewECS}
            - false
Catatan

Properti Required hanya memengaruhi efek tampilan parameter di frontend tetapi tidak memengaruhi verifikasi parameter.

Placeholder

Tidak

Petunjuk kustom yang ditampilkan di bidang untuk sebuah parameter.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Placeholder:
    Type: String
    Placeholder:
      en: Placeholder

Contoh: Buat stack untuk membuat aplikasi web

Sebagai contoh, Anda ingin membuat stack untuk aplikasi web. Stack tersebut mencakup satu instance Server Load Balancer (SLB), dua instance Elastic Compute Service (ECS), dan satu instance ApsaraDB RDS. Jika aplikasi web memiliki beban kerja tinggi, gunakan instance ECS dengan tipe lanjutan saat membuat stack. Untuk beban kerja biasa, gunakan instance ECS dengan tipe dasar. Kode sampel berikut menunjukkan cara mendefinisikan properti untuk parameter InstanceType dalam template:

Parameters:
  InstanceType:
    Type: String
    AllowedValues:
      - ecs.t1.small
      - ecs.s1.medium
      - ecs.m1.medium
      - ecs.c1.large
    Default: ecs.t1.small
    Label: ECS Instance Type
    Description: Pilih tipe instance. Nilai default: ecs.t1.small. Nilai yang valid: ecs.t1.small, ecs.s1.medium, ecs.m1.medium, dan ecs.c1.large.

Jika Anda menggunakan kode sampel di atas untuk mendefinisikan properti parameter InstanceType, Anda dapat memilih nilai berbeda dari serangkaian nilai valid untuk parameter InstanceType setiap kali membuat stack berdasarkan template. Jika parameter InstanceType dibiarkan kosong, nilai default ecs.t1.small akan digunakan.

Kode sampel berikut menunjukkan cara merujuk parameter InstanceType saat mendefinisikan sumber daya:

Webserver:
  Type: ALIYUN::ECS::Instance
  InstanceType:
    Ref: InstanceType