Menggunakan JSON Kustom - AWS OpsWorks

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

Menggunakan JSON Kustom

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 Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

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

Anda dapat menentukan JSON kustom dalam situasi berikut:

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

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

AWS 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.

/var/lib/aws/opsworks/chef/hostname.json

Di jalur sebelumnya, Run-ID adalah ID unik yang ditetapkan AWS OpsWorks Stacks ke setiap Chef yang dijalankan pada sebuah instance, dan nama host adalah nama host instance.

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

Misalnya, Anda ingin menentukan setelan 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.

  2. 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 kustom yang dideklarasikan hanya pada tingkat tumpukan.

Untuk menggunakan konsol AWS 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 AWS 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 dan Menerapkan Aplikasi.

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. AWS 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 kapasitas lebih, kami sarankan untuk menyimpan beberapa data di Amazon Simple Storage Service (Amazon S3). Resep kustom Anda kemudian dapat menggunakan AWS CLI atau AWS SDK for Rubyuntuk mengunduh data dari bucket Amazon S3 ke instans Anda.