Saat membuat atau memperbarui tumpukan berdasarkan template, Anda dapat menggunakan bagian Aturan untuk memvalidasi nilai-nilai yang diteruskan ke parameter dalam template.
Sintaks
Anda dapat mendeklarasikan satu atau lebih aturan di bagian Rules dari template Resource Orchestration Service (ROS).
Setiap aturan terdiri dari nama dan deskripsi aturan. Pisahkan beberapa aturan dengan koma (,).
Aturan:
Nama Aturan 1:
RuleCondition: kondisi dari aturan.
Assertions:
- Assert: asersi dari aturan.
AssertDescription: deskripsi dari asersi.
- Assert: asersi dari aturan.
AssertDescription: deskripsi dari asersi.
Nama Aturan 2:
Assertions:
- Assert: asersi dari aturan. (Opsional)
RuleCondition: Kondisi yang menentukan kapan aturan berlaku. Jikadibiarkan kosong, asersi dari aturan akan selalu berlaku.Assertions: Asersi yang mendeklarasikan nilai yang dapat ditentukan untuk sebuah parameter.CatatanNilai
Assertionsdapat mencakup hingga 100 pasang nilaiAssertdanAssertDescription.Assert: Asersi dari aturan.(Opsional)
AssertDescription: Deskripsi dari asersi. Deskripsi ini muncul jika hasil dari asersi adalahfalse.
Hanya satu RuleCondition yang dapat didefinisikan untuk setiap aturan. Assertions hanya berlaku jika RuleCondition dibiarkan kosong atau hasilnya adalah true.
Jika hasil dari Assert adalah true, verifikasi nilai parameter berhasil. Dalam hal ini, Anda dapat melanjutkan untuk melihat pratinjau, membuat, atau memperbarui tumpukan.
Anda tidak dapat mereferensikan jenis sumber data (sumber daya DataSource) dalam kondisi aturan dan asersi untuk penilaian logis.
Contoh
Dalam contoh berikut, aturan dikonfigurasi untuk memastikan bahwa bandwidth publik dari instance Elastic Compute Service (ECS) yang dibuat di lingkungan produksi adalah 0 dan metode penagihan bayar sesuai pemakaian digunakan untuk instance ECS yang dibuat di lingkungan staging.
ROSTemplateFormatVersion: '2015-09-01'
Aturan:
PublicNet:
RuleCondition:
Fn::Equals:
- Ref: Environment
- prod
Assertions:
- Assert:
Fn::Equals:
- Ref: InternetMaxBandwidthOut
- 0
AssertDescription: Instance ECS harus intranet saat lingkungan adalah prod.
ChargeType:
RuleCondition:
Fn::Equals:
- Ref: Environment
- pre
Assertions:
- Assert:
Fn::Equals:
- Ref: InstanceChargeType
- PayAsYouGo
AssertDescription: Instance ECS harus pascabayar saat lingkungan adalah pre.
Parameter:
Environment:
Type: String
AllowedValues:
- prod
- pre
InternetMaxBandwidthOut:
Type: Number
MaxValue: 10
MinValue: 0
InstanceChargeType:
Type: String
AllowedValues:
- PayAsYouGo
- Subscription
Sumber Daya:
ECS:
Type: ALIYUN::ECS::InstanceGroup
Properties:
InternetMaxBandwidthOut:
Ref: InternetMaxBandwidthOut
InstanceChargeType:
Ref: InstanceChargeType
#Properti lainnya (diabaikan di sini): null.