

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

# CloudFormation format templat
<a name="template-formats"></a>

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
<a name="template-structure"></a>

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
<a name="template-structure.json"></a>

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
<a name="template-structure.yaml"></a>

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
<a name="template-comments"></a>

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 lebih lanjut, lihat [Atribut Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html).

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
<a name="template-formats.supported-specifications"></a>

CloudFormation mendukung spesifikasi JSON dan YAMAL berikut:

JSON  
CloudFormation mengikuti standar ECMA-404 JSON. Untuk informasi tentang format JSON, lihat [http://www.json.org](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](https://yaml.org/).

## Pelajari selengkapnya
<a name="template-formats.learnmore"></a>

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](template-anatomy.md).