全部产品
Search
文档中心

Resource Orchestration Service:Aturan

更新时间:Jun 26, 2025

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. Jika dibiarkan kosong, asersi dari aturan akan selalu berlaku.

  • Assertions: Asersi yang mendeklarasikan nilai yang dapat ditentukan untuk sebuah parameter.

    Catatan

    Nilai Assertions dapat mencakup hingga 100 pasang nilai Assert dan AssertDescription.

  • Assert: Asersi dari aturan.

  • (Opsional) AssertDescription: Deskripsi dari asersi. Deskripsi ini muncul jika hasil dari asersi adalah false.

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.

Penting

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.