Aturan Batasan Templat - AWS Service Catalog

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aturan Batasan Templat

Aturan yang menentukan batasan template dalam AWS Service Catalog portofolio menjelaskan kapan pengguna akhir dapat menggunakan template dan nilai mana yang dapat mereka tentukan untuk parameter yang dideklarasikan dalam AWS CloudFormation template yang digunakan untuk membuat produk yang mereka coba gunakan. Aturan berguna untuk mencegah pengguna akhir menentukan nilai yang salah secara tidak sengaja. Misalnya, Anda dapat menambahkan aturan untuk memverifikasi bahwa pengguna akhir menentukan subnet yang valid ke dalam VPC tertentu atau menggunakan tipe instans m1.small untuk lingkungan pengujian. AWS CloudFormation menggunakan aturan untuk memvalidasi nilai parameter sebelum menciptakan sumber daya untuk produk.

Setiap aturan terdiri dari dua sifat: syarat aturan (opsional) dan pernyataan (wajib). Syarat aturan menentukan waktu berlakunya aturan. Pernyataan menjelaskan nilai yang dapat ditentukan pengguna untuk parameter tertentu. Jika Anda tidak menentukan syarat aturan, pernyataan aturan selalu berlaku. Untuk menentukan syarat aturan dan pernyataan, Anda menggunakan fungsi intrinsik khusus aturan, yang merupakan fungsi yang hanya dapat digunakan dalam bagian Rules dari templat. Anda dapat membuat nest fungsi, tetapi hasil akhir dari syarat aturan atau pernyataan harus berupa benar atau salah.

Sebagai contoh, anggap bahwa Anda telah menyatakan VPC dan subnet parameter pada bagian Parameters. Anda dapat membuat aturan yang memvalidasi bahwa subnet yang diberikan berada di VPC tertentu. Jadi ketika pengguna menentukan VPC, AWS CloudFormation mengevaluasi pernyataan untuk memeriksa bahwa nilai parameter subnet berada dalam VPC tersebut sebelum membuat atau memperbarui tumpukan. Jika nilai parameter tidak valid, AWS CloudFormation gagal untuk membuat atau memperbarui tumpukan. Jika pengguna tidak menentukan VPC, AWS CloudFormation tidak memeriksa nilai parameter subnet.

Sintaks

Bagian Rules dari templat terdiri dari nama kunci Rules, diikuti oleh titik dua. Kurung kurawal melampirkan semua deklarasi aturan. Jika Anda mendeklarasikan beberapa aturan, aturan-aturan tersebut dibatasi dengan koma. Untuk setiap aturan, Anda nyatakan nama logis dalam tanda kutip diikuti oleh titik dua dan tanda kurung kurawal yang menyertakan syarat dan pernyataan aturan.

Aturan dapat mencakup properti RuleCondition dan harus mencakup properti Assertions. Untuk setiap aturan, Anda dapat menentukan hanya satu aturan syarat; Anda dapat menentukan satu atau beberapa pernyataan dalam properti Assertions. Anda menentukan sebuah syarat dan pernyataan aturan dengan menggunakan fungsi intrinsik khusus aturan, seperti yang ditampilkan pada templat semu berikut:

"Rules":{ "Rule01":{ "RuleCondition":{ "Rule-specific intrinsic function" }, "Assertions":[ { "Assert":{ "Rule-specific intrinsic function" }, "AssertDescription":"Information about this assert" }, { "Assert":{ "Rule-specific intrinsic function" }, "AssertDescription":"Information about this assert" } ] }, "Rule02":{ "Assertions":[ { "Assert":{ "Rule-specific intrinsic function" }, "AssertDescription":"Information about this assert" } ] } }

Templat semu menunjukkan bagian Rules yang berisi dua aturan bernama Rule01 dan Rule02. Rule01 mencakup syarat aturan dan dua pernyataan. Jika fungsi dalam syarat aturan bernilai true (benar), kedua fungsi dalam setiap pernyataan dievaluasi dan diterapkan. Jika syarat aturan adalah false (salah), aturan tidak berlaku. Rule02 selalu berlaku karena tidak memiliki syarat aturan, yang berarti satu pernyataan selalu dievaluasi dan diterapkan.

Untuk informasi tentang fungsi intrinsik khusus aturan guna menentukan kondisi dan pernyataan aturan, lihat Fungsi AWSAturan di Panduan Pengguna. AWS CloudFormation

Contoh: Verifikasi Nilai Parameter secara Bersyarat

Dalam contoh berikut, dua aturan tersebut memeriksa nilai parameter InstanceType. Tergantung pada nilai parameter Lingkungan (test atau prod), pengguna harus menentukan m1.small atau m1.large untuk parameter InstanceType. Parameter InstanceType dan Environment harus dideklarasikan dalam bagian Parameters dari templat yang sama.

"Rules" : { "testInstanceType" : { "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "test"]}, "Assertions" : [ { "Assert" : { "Fn::Contains" : [ ["m1.small"], {"Ref" : "InstanceType"} ] }, "AssertDescription" : "For the test environment, the instance type must be m1.small" } ] }, "prodInstanceType" : { "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "prod"]}, "Assertions" : [ { "Assert" : { "Fn::Contains" : [ ["m1.large"], {"Ref" : "InstanceType"} ] }, "AssertDescription" : "For the prod environment, the instance type must be m1.large" } ] } }