CloudFormation format templat - AWS CloudFormation

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

CloudFormation format templat

Anda dapat membuat CloudFormation template dalam format JSON atau YAMAL. Kedua format melayani tujuan yang sama tetapi menawarkan keuntungan yang berbeda dalam hal keterbacaan dan kompleksitas.

  • JSON - JSON adalah format pertukaran data ringan yang mudah diurai dan dihasilkan oleh mesin. Namun, dapat menjadi rumit bagi manusia untuk membaca dan menulis, terutama untuk konfigurasi yang kompleks. Di JSON, template disusun menggunakan tanda kurung {} dan tanda kurung bersarang [] untuk menentukan sumber daya, parameter, dan komponen lainnya. Sintaksnya membutuhkan deklarasi eksplisit dari setiap elemen, yang dapat membuat template bertele-tele tetapi memastikan kepatuhan yang ketat terhadap format terstruktur.

  • YAMAL — YAMAL dirancang agar lebih mudah dibaca manusia dan kurang bertele-tele daripada JSON. Ini menggunakan lekukan daripada kawat gigi dan tanda kurung untuk menunjukkan bersarang, yang dapat membuatnya lebih mudah untuk memvisualisasikan hierarki sumber daya dan parameter. YAMAL sering disukai karena kejelasan dan kemudahan penggunaannya, terutama ketika berhadapan dengan template yang lebih kompleks. Namun, ketergantungan YAMAL pada lekukan dapat menyebabkan kesalahan jika jarak tidak konsisten, yang memerlukan perhatian yang cermat untuk menjaga akurasi.

Struktur templat

CloudFormation template dibagi menjadi beberapa bagian yang berbeda, dan setiap bagian dirancang untuk menyimpan jenis informasi tertentu. Beberapa bagian harus dinyatakan dalam urutan tertentu, dan untuk yang lain, urutannya tidak masalah. Namun, saat Anda membangun template Anda, akan sangat membantu untuk menggunakan urutan logis yang ditunjukkan dalam contoh berikut karena nilai dalam satu bagian mungkin merujuk ke nilai dari bagian sebelumnya.

Saat membuat template, jangan gunakan duplikat bagian utama, seperti bagian. Resources Meskipun CloudFormation mungkin menerima template, itu akan memiliki perilaku yang tidak terdefinisi saat memproses template, dan mungkin salah menyediakan sumber daya, atau mengembalikan kesalahan yang tidak dapat dijelaskan.

JSON

Contoh berikut menunjukkan struktur template berformat JSON dengan semua bagian yang tersedia.

{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Rules" : { set of rules }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }

YAML

Contoh berikut menunjukkan struktur template yang diformat YAML dengan semua bagian yang tersedia.

--- AWSTemplateFormatVersion: version date Description: String Metadata: template metadata Parameters: set of parameters Rules: set of rules Mappings: set of mappings Conditions: set of conditions Transform: set of transforms Resources: set of resources Outputs: set of outputs

Komentar

Dalam template berformat JSON, komentar tidak didukung. JSON, menurut desain, tidak menyertakan sintaks untuk komentar, yang berarti Anda tidak dapat menambahkan komentar secara langsung dalam struktur JSON. Namun, jika Anda perlu menyertakan catatan penjelasan atau dokumentasi, Anda dapat mempertimbangkan untuk menambahkan metadata. Untuk informasi selengkapnya, lihat Metadataatribut.

Dalam template berformat YAML, Anda dapat menyertakan komentar sebaris dengan menggunakan simbol. #

Contoh berikut menunjukkan templat YAML dengan komentar sejajar.

AWSTemplateFormatVersion: 2010-09-09 Description: A sample CloudFormation template with YAML comments. # Resources section Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: # Linux AMI ImageId: ami-1234567890abcdef0 InstanceType: t2.micro KeyName: MyKey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20

Spesifikasi

CloudFormation mendukung spesifikasi JSON dan YAMAL berikut:

JSON

CloudFormation mengikuti standar ECMA-404 JSON. Untuk informasi tentang format JSON, lihat http://www.json.org.

YAML

CloudFormation mendukung spesifikasi YAMAL Versi 1.1 dengan beberapa pengecualian. CloudFormation tidak mendukung fitur berikut:

  • Tanda binary, omap, pairs, set, dan timestamp

  • Alias

  • Penggabungan hash

Untuk informasi lebih lanjut tentang YAML, lihat https://yaml.org.

Pelajari selengkapnya

Untuk setiap sumber daya yang Anda tentukan dalam template, Anda menentukan properti dan nilainya menggunakan aturan sintaks tertentu dari JSON atau YAMAL. Untuk informasi lebih lanjut tentang sintaksis templat untuk setiap format, lihat CloudFormation bagian template.