

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

# Menggunakan JSON Kustom
<a name="workingstacks-json"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Beberapa tindakan OpsWorks Stacks memungkinkan Anda menentukan JSON kustom, yang mana OpsWorks Stacks menginstal pada instance dan dapat digunakan oleh resep.

Anda dapat menentukan JSON kustom dalam situasi berikut:
+ Saat Anda membuat, memperbarui, atau mengkloning tumpukan.

  [AWS OpsWorks Stacks menginstal JSON kustom di semua instans untuk semua peristiwa siklus hidup berikutnya.](workingcookbook-events.md)
+ Saat Anda menjalankan perintah deployment atau stack.

  AWS OpsWorks Stacks meneruskan JSON kustom ke instance hanya untuk peristiwa itu.

JSON kustom harus diwakili oleh, dan diformat sebagai, objek JSON yang valid. Contoh:

```
{
  "att1": "value1",
  "att2": "value2"
  ...
}
```

OpsWorks Stacks menyimpan JSON kustom di lokasi berikut:

Pada instans Linux:
+ `/var/chef/runs/run-ID/attribs.json`
+ `/var/chef/runs/run-ID/nodes/hostname.json`

Pada contoh Windows:
+ `drive:\chef\runs\run-ID\attribs.json`
+ `drive:\chef\runs\run-ID\nodes\hostname.json`

**catatan**  
Di Chef 11.10 dan versi sebelumnya untuk Linux, JSON kustom terletak di jalur berikut pada instance Linux, instance Windows tidak tersedia, dan tidak ada file. `attribs.json` Log disimpan dalam folder atau direktori yang sama dengan JSON. [Untuk informasi selengkapnya tentang JSON kustom di Chef 11.10 dan versi sebelumnya untuk Linux, lihat [Mengganti Atribut dengan Log JSON dan Chef Kustom](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html).](https://docs.aws.amazon.com/opsworks/latest/userguide/troubleshoot-debug-log.html#troubleshoot-debug-log-instance)  
`/var/lib/aws/opsworks/chef/hostname.json`

Di jalur sebelumnya, *run-ID* adalah ID unik yang ditetapkan OpsWorks Stacks ke setiap Chef yang dijalankan pada sebuah instance, dan *hostname* merupakan nama host instance.

Untuk mengakses JSON kustom dari resep Chef, gunakan `node` sintaks Chef standar.

Misalnya, Anda ingin menentukan pengaturan sederhana untuk aplikasi yang ingin Anda terapkan, seperti apakah aplikasi awalnya terlihat dan warna latar depan dan latar belakang awal aplikasi. Misalkan Anda mendefinisikan pengaturan aplikasi ini dengan objek JSON sebagai berikut: 

```
{
  "state": "visible",
  "colors": {
    "foreground": "light-blue",
    "background": "dark-gray"
  }
}
```

Untuk mendeklarasikan JSON kustom untuk tumpukan:

1. Pada halaman stack, pilih **Stack Settings**, lalu pilih **Edit**.

1. **Untuk **Custom Chef JSON**, ketik objek JSON, lalu pilih Simpan.**

**catatan**  
Anda dapat mendeklarasikan JSON kustom di tingkat penerapan, lapisan, dan tumpukan. Anda mungkin ingin melakukan ini jika Anda ingin beberapa JSON khusus hanya terlihat oleh penerapan atau lapisan individu. Atau, misalnya, Anda mungkin ingin mengganti sementara JSON khusus yang dideklarasikan di tingkat tumpukan dengan JSON khusus yang dideklarasikan di tingkat lapisan. Jika Anda mendeklarasikan JSON kustom di beberapa tingkatan, JSON khusus yang dideklarasikan pada tingkat penerapan akan mengesampingkan JSON kustom apa pun yang dideklarasikan di tingkat lapisan dan tumpukan. JSON khusus yang dideklarasikan pada tingkat lapisan mengesampingkan JSON khusus yang dideklarasikan hanya pada tingkat tumpukan.  
**Untuk menggunakan konsol OpsWorks Stacks untuk menentukan JSON kustom untuk penerapan, pada halaman **Deploy App**, pilih Advanced.** **Ketik JSON kustom di kotak **Custom Chef JSON**, lalu pilih Simpan.**  
Untuk menggunakan konsol OpsWorks Stacks untuk menentukan JSON kustom untuk lapisan, pada halaman Layers, pilih **Pengaturan** untuk **lapisan** yang diinginkan. **Ketik JSON kustom di kotak **Custom JSON**, lalu pilih Simpan.**  
Untuk informasi selengkapnya, lihat [Mengedit Konfigurasi OpsWorks Layer](workinglayers-basics-edit.md) dan [Menerapkan Aplikasi](workingapps-deploying.md).

Saat Anda menjalankan perintah deployment atau stack, resep dapat mengambil nilai-nilai kustom ini dengan menggunakan `node` sintaks Chef standar, yang memetakan langsung ke hierarki di objek JSON kustom. Misalnya, kode resep berikut menulis pesan ke log Chef tentang nilai JSON kustom sebelumnya:

```
Chef::Log.info("********** The app's initial state is '#{node['state']}' **********")
Chef::Log.info("********** The app's initial foreground color is '#{node['colors']['foreground']}' **********")
Chef::Log.info("********** The app's initial background color is '#{node['colors']['background']}' **********")
```

Pendekatan ini dapat berguna untuk meneruskan data ke resep. OpsWorks Stacks menambahkan data tersebut ke instance, dan resep dapat mengambil data dengan menggunakan sintaks Chef `node` standar. 

**catatan**  
Custom JSON dibatasi hingga 120 KB. Jika Anda membutuhkan lebih banyak kapasitas, kami sarankan untuk menyimpan beberapa data di Amazon Simple Storage Service (Amazon S3). Resep kustom Anda kemudian dapat menggunakan [AWS CLI](https://aws.amazon.com/documentation/cli/) atau [AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/)untuk mengunduh data dari bucket Amazon S3 ke instans Anda.