Mirip dengan template, modul adalah file teks JSON atau YAML yang dikodekan dalam UTF-8. Topik ini menjelaskan konsep dasar modul, termasuk konvensi penamaan, batasan, dan struktur.
Konvensi Penamaan
Modul mengikuti konvensi penamaan empat bagian berikut: MODULE::Organisasi::Layanan::KasusPenggunaan.
MODULE: Ini adalah nilai tetap.Organisasi: Nama organisasi Anda.Nama harus memiliki panjang minimal dua karakter dan dapat berisi huruf dan angka.
Nama tidak boleh berisi string huruf kecil berikut:
alicloud,alibaba, ataualiyun.Nama tidak boleh dimulai dengan string huruf kecil berikut:
acs.Nama tidak boleh diatur ke salah satu dari string huruf kecil berikut:
ros,dev,test, ataudebug.
Layanan: Nama layanan.Nama harus memiliki panjang minimal dua karakter dan dapat berisi huruf dan angka.
KasusPenggunaan: Nama sumber daya.Nama harus memiliki panjang minimal dua karakter dan dapat berisi huruf dan angka.
Jika Anda mengatur Organisasi ke SHARE saat membuat modul, Anda harus mengatur Layanan ke ID akun Alibaba Cloud saat ini. Sebagai contoh, Anda dapat menentukan MODULE::SHARE::123456789::KasusPenggunaan dalam skenario ini.
Modul kustom untuk mana Organisasi diatur ke SHARE disebut sebagai modul bersama. Pengguna lain dapat melihat dan menggunakan modul bersama Anda, tetapi tidak dapat memodifikasi atau menghapusnya.
Batasan
Anda tidak dapat menentukan
TransformdanWorkspacedalam modul.Anda hanya dapat menentukan
Ruleskosong dalam modul.Anda dapat menyusun modul kustom hingga tiga tingkat kedalaman. Jika Anda menggunakan modul publik bersamaan dengan modul kustom, modul kustom tetap pada tiga tingkat kedalaman.
Gambar berikut hanya menunjukkan modul publik yang disusun hingga empat tingkat kedalaman. ModuleA berada di Tingkat 1, ModuleB berada di Tingkat 2, ModuleC berada di Tingkat 3, dan ModuleD berada di Tingkat 4.

Struktur Modul
ROSTemplateFormatVersion: '2015-09-01'
Description: Deskripsi modul. Bagian Description memberikan informasi seperti skenario, arsitektur, dan metode penggunaan modul.
Metadata:
# Metadata modul. Bagian Metadata memberikan informasi seperti tata letak untuk visualisasi.
Parameters:
# Parameter modul. Saat menggunakan modul, Anda dapat menentukan nilai parameter dari template atau modul yang berisi modul tersebut.
Mappings:
# Pemetaan modul, yang berada dalam struktur bersarang.
Conditions:
# Kondisi modul, yang menentukan apakah sistem dapat membuat sumber daya.
Resources:
# Detail sumber daya atau modul anak yang terkandung dalam modul. Detail mencakup properti dan asosiasi.
Outputs:
# Output modul. Output dapat digunakan oleh template atau modul yang berisi modul tersebut.
(Wajib) ROSTemplateFormatVersion
Bagian modul mematuhi persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Wajib) ROSTemplateFormatVersion.
(Opsional) Description
Bagian modul sesuai dengan persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Description.
Kami merekomendasikan agar Anda menentukan Description. Anda dapat menentukan beberapa bahasa dalam Description. Deskripsi dapat membantu pengguna menggunakan modul dengan cara yang tepat. Tab Module Content pada halaman detail modul menampilkan deskripsi. Contoh berikut memberikan contoh tentang cara menentukan beberapa bahasa dalam Description:
Description:
en: |-
This is a demo.(Opsional) Metadata
Bagian modul mengikuti persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Metadata.
Saat ROS melakukan operasi tumpukan dan memproses serta menghasilkan template, bagian Metadata dalam modul diabaikan.
Untuk memastikan penggunaan modul yang tepat, kami merekomendasikan agar Anda menambahkan Metadata ke modul. Bagian Metadata modul sepenuhnya disalin ke template contoh yang ditampilkan di tab Sample Template pada halaman detail modul. Ini mengoptimalkan efek tampilan template.
(Opsional) Parameters
Bagian modul memenuhi persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Parameters.
Parameter modul tidak mendukung penegakan batasan, termasuk parameter Type, AllowedValues, AllowedPattern, MaxLength, MinLength, MaxValue, dan MinValue.
Jika parameter modul dibiarkan kosong dan memiliki nilai default yang ditentukan oleh Default, nilai default akan digunakan saat ROS melakukan operasi tumpukan dan memproses serta menghasilkan template.
Batasan: Nama parameter tidak boleh berisi titik (.) atau titik dua (:).
Konfigurasi yang direkomendasikan:
Untuk memastikan penggunaan modul yang tepat, Anda dapat mengonfigurasi properti parameter modul yang selengkap mungkin dengan properti parameter template.
Tab Properties pada halaman detail modul menampilkan semua properti dalam korespondensi satu-satu dengan parameter modul. Data di kolom Type, Required, Description, dan Constraint setiap properti dihasilkan berdasarkan properti parameter yang dikonfigurasi dalam konten modul.
Tab Sample Template pada halaman detail modul menampilkan template contoh modul. Dalam template, bagian
Parametersdihasilkan berdasarkan properti parameter yang dikonfigurasi dalam konten modul. Ini memastikan validitas pengaturan parameter dan mengoptimalkan efek tampilan template.
Anda dapat mengonfigurasi properti yang mendukung konfigurasi multibahasa untuk parameter modul, seperti properti
DescriptiondanLabel.
(Opsional) Mappings
Bagian modul mematuhi persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Mappings.
Batasan: Nama lengkap pemetaan tidak boleh diduplikasi. Untuk informasi lebih lanjut tentang nama lengkap, lihat Referensi kondisi dalam modul.
(Opsional) Conditions
Modul ini mengikuti persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Conditions.
Batasan:
Nama kondisi tidak boleh berisi ampersand (
&).Nama lengkap kondisi tidak boleh diduplikasi. Untuk informasi lebih lanjut tentang nama lengkap, lihat Referensi kondisi dalam modul.
(Opsional) Resources
Bagian modul sesuai dengan persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Resources.
Anda dapat menetapkan DependsOn suatu sumber daya ke asterisk (*). Dalam hal ini, saat ROS melakukan operasi tumpukan dan memproses serta menghasilkan template, sumber daya tersebut akan bergantung pada semua sumber daya yang nilai DependsOn-nya tidak diatur ke asterisk (*).
Batasan:
Nama logis suatu sumber daya tidak boleh berisi titik (
.).Anda tidak dapat menggunakan tipe sumber daya
ALIYUN::ROS::Stack,ALIYUN::ROS::StackGroup, danALIYUN::ROS::StackInstancesdi bagian Resources.Anda tidak dapat menggunakan fungsi
Fn::GetStackOutputdi bagian Resources.Anda tidak dapat menentukan
MetadatadanCountuntuk modul anak.Anda harus menentukan
Versionuntuk modul anak.Nama logis lengkap sumber daya atau modul tidak boleh diduplikasi. Untuk informasi lebih lanjut tentang nama logis lengkap, lihat Referensi sumber daya dalam modul.
Anda hanya dapat menggunakan modul publik atau modul bersama lainnya dalam modul bersama.
(Opsional) Outputs
Bagian modul sesuai dengan persyaratan yang sama dengan bagian template. Untuk informasi lebih lanjut, lihat (Opsional) Outputs.
Batasan:
Nama output tidak boleh berisi titik (
.).Anda tidak dapat menggunakan fungsi
Fn::GetStackOutputdi bagian Outputs.
Konfigurasi yang direkomendasikan: Anda dapat menentukan Description untuk setiap output.
Tab Return Values pada halaman detail modul menampilkan semua nilai kembali dalam korespondensi satu-satu dengan output yang dikonfigurasi dalam konten modul. Data di kolom Deskripsi nilai kembali dihasilkan berdasarkan
Descriptionyang ditentukan untuk output dalam konten modul.Tab Sample Template pada halaman detail modul menampilkan template contoh modul. Dalam template, bagian
Outputsdihasilkan berdasarkan output yang dikonfigurasi dalam konten modul. Ini mengoptimalkan efek tampilan template.