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:
Catatan Anda tidak dapat menggunakan AllowedPattern untuk memverifikasi parameter tipe |
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 |
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 |
Confirm | Tidak | Menentukan apakah akan memasukkan nilai parameter untuk kedua kalinya jika properti NoEcho dari parameter tersebut disetel menjadi Catatan Anda hanya dapat menyetel properti Confirm menjadi |
Description | Sebuah string yang menjelaskan parameter. Nilai yang valid:
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 |
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:
Pada contoh berikut, parameter Content mendukung pemisah baris: |
Required | Tidak | Menentukan apakah parameter diperlukan. Nilai yang valid:
Pada contoh berikut, parameter ECSInstanceId diperlukan. 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. |
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