

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

# Menyesuaikan Konfigurasi OpsWorks Tumpukan dengan Mengganti Atribut
<a name="workingcookbook-attributes"></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.

**catatan**  
Untuk tumpukan Windows dan tumpukan Linux Chef 12, OpsWorks Stacks menggunakan Chef yang dijalankan terpisah untuk resep bawaan dan resep khusus. Ini berarti Anda tidak dapat menggunakan teknik yang dibahas di bagian ini untuk mengganti atribut bawaan untuk tumpukan Windows dan tumpukan Linux Chef 12.

Resep dan template bergantung pada berbagai atribut Chef misalnya atau informasi spesifik tumpukan seperti konfigurasi lapisan atau pengaturan server aplikasi. Atribut ini memiliki beberapa sumber:
+ **JSON Kustom** —Anda dapat secara opsional menentukan atribut JSON kustom saat membuat, memperbarui, atau mengkloning tumpukan, atau saat Anda menerapkan aplikasi.
+ **Atribut konfigurasi tumpukan** —OpsWorks Stacks mendefinisikan atribut ini untuk menyimpan informasi konfigurasi tumpukan, termasuk informasi yang Anda tentukan melalui pengaturan konsol. 
+ **Atribut penerapan —AWS OpsWorks mendefinisikan atribut** terkait penerapan untuk peristiwa Deploy.
+ **Atribut buku masak** — Cookbook bawaan dan kustom biasanya menyertakan satu atau lebih [file atribut](workingcookbook-installingcustom-components-attributes.md), yang berisi atribut yang mewakili nilai khusus buku masak seperti pengaturan konfigurasi server aplikasi. 
+ **Chef** —Chef's [Ohai tool](http://docs.chef.io/resource_ohai.html) mendefinisikan atribut yang mewakili berbagai macam pengaturan konfigurasi sistem, seperti tipe CPU dan memori yang diinstal.

Untuk daftar lengkap konfigurasi tumpukan dan atribut penerapan dan atribut buku masak bawaan, lihat [Konfigurasi Stack dan Atribut Deployment: Linux](attributes-json-linux.md) dan. [Atribut Buku Masak Bawaan](attributes-recipes.md) Untuk informasi lebih lanjut tentang atribut Ohai, lihat [Ohai](https://docs.chef.io/ohai.html).

Ketika [peristiwa siklus hidup](workingcookbook-events.md) seperti Deploy atau Configure terjadi, atau Anda menjalankan [perintah stack](workingstacks-commands.md) seperti `execute_recipes` atau`update_packages`, OpsWorks Stacks melakukan hal berikut:
+ Mengirim perintah yang sesuai ke agen pada setiap instance yang terpengaruh.

  Agen menjalankan resep yang sesuai. Misalnya, untuk acara Deploy, agen menjalankan resep Deploy bawaan, diikuti oleh resep Deploy khusus apa pun.
+ Menggabungkan atribut JSON dan penerapan kustom apa pun dengan atribut konfigurasi tumpukan dan menginstalnya pada instance.

Atribut dari JSON kustom, konfigurasi tumpukan dan atribut penerapan, atribut buku masak, dan atribut Ohai digabungkan menjadi *objek simpul*, yang memasok nilai atribut ke resep. Sebuah instance pada dasarnya stateless sejauh menyangkut atribut konfigurasi tumpukan, termasuk JSON kustom apa pun. Saat Anda menjalankan perintah deployment atau stack, resep terkait menggunakan atribut konfigurasi stack yang diunduh dengan perintah tersebut.

**Topics**
+ [Atribut Prioritas](workingcookbook-attributes-precedence.md)
+ [Mengganti Atribut Dengan JSON Kustom](workingcookbook-json-override.md)
+ [Mengganti Atribut OpsWorks Stacks Menggunakan Atribut Cookbook Kustom](workingcookbook-cookbook-attributes.md)

# Atribut Prioritas
<a name="workingcookbook-attributes-precedence"></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.

Jika atribut didefinisikan secara unik, Chef hanya memasukkannya ke dalam objek node. Namun, sumber atribut apa pun dapat menentukan atribut apa pun, sehingga dimungkinkan untuk atribut yang sama memiliki beberapa definisi dengan nilai yang berbeda. Misalnya, `apache2` buku masak bawaan mendefinisikan`node[:apache][:keepalive]`, tetapi Anda juga dapat menentukan atribut itu di JSON khusus atau di buku masak khusus. Jika atribut memiliki beberapa definisi, mereka dievaluasi dalam urutan yang dijelaskan kemudian dan objek node menerima definisi dengan prioritas tertinggi.

Atribut didefinisikan sebagai berikut:

```
node.type[:attribute][:sub_attribute][:...]=value
```

Jika atribut memiliki beberapa definisi, tipe menentukan definisi mana yang diutamakan, dan definisi tersebut dimasukkan ke dalam objek node. OpsWorks Tumpukan menggunakan jenis atribut berikut:
+ **default** —Ini adalah tipe yang paling umum, dan pada dasarnya berarti “gunakan nilai ini jika atribut belum ditentukan.” Jika semua definisi atribut adalah `default` tipe, definisi pertama dalam urutan evaluasi diutamakan dan nilai selanjutnya diabaikan. Perhatikan bahwa OpsWorks Stacks menetapkan semua konfigurasi tumpukan dan definisi atribut penerapan untuk `default` mengetik.
+ **normal** —Atribut dengan tipe ini mengesampingkan `normal` atribut apa pun `default` atau yang didefinisikan sebelumnya dalam urutan evaluasi. Misalnya, jika atribut pertama berasal dari buku masak bawaan dan memiliki `default` tipe dan yang kedua adalah atribut yang ditentukan pengguna dengan memiliki `normal` tipe, definisi kedua diutamakan.
+ **set** —Ini adalah tipe usang yang mungkin Anda lihat di buku masak lama. Itu telah digantikan oleh`normal`, yang memiliki prioritas yang sama. 

Chef mendukung beberapa jenis atribut tambahan, termasuk `automatic` tipe yang lebih diutamakan daripada semua definisi atribut lainnya. Definisi atribut yang dihasilkan oleh alat Ohai Chef adalah semua `automatic` jenis, sehingga mereka secara efektif hanya-baca. Ini biasanya tidak menjadi masalah, karena tidak ada alasan untuk mengesampingkannya dan mereka berbeda dari atribut OpsWorks Stacks. Namun, Anda harus berhati-hati untuk memberi nama atribut buku masak khusus Anda sehingga mereka berbeda dari atribut Ohai. Untuk informasi selengkapnya, lihat [Tentang Atribut](http://docs.chef.io/attributes.html).

**catatan**  
Alat Ohai adalah executable yang dapat Anda jalankan dari baris perintah. Untuk mencantumkan atribut Ohai instance, masuk ke instance dan jalankan `ohai` di jendela terminal. Ketahuilah bahwa itu menghasilkan output yang sangat panjang.

Berikut adalah langkah-langkah yang menggabungkan berbagai definisi atribut ke dalam objek node:

1. Gabungkan atribut konfigurasi tumpukan khusus apa pun ke dalam konfigurasi tumpukan dan atribut penerapan. 

   Atribut JSON kustom dapat diatur untuk tumpukan, atau untuk penerapan tertentu. Mereka adalah yang pertama dalam urutan evaluasi dan merupakan `normal` tipe yang efektif. Jika satu atau beberapa atribut konfigurasi tumpukan juga didefinisikan dalam JSON kustom, nilai JSON kustom diutamakan. Jika tidak, OpsWorks Stacks hanya memasukkan atribut JSON khusus ke dalam konfigurasi tumpukan. 

1. Gabungkan atribut JSON kustom penerapan apa pun ke dalam konfigurasi tumpukan dan atribut penerapan.

   Atribut JSON kustom penerapan juga merupakan `normal` tipe yang efektif, sehingga lebih diutamakan daripada konfigurasi tumpukan bawaan dan kustom JSON dan JSON penerapan bawaan.

1. Gabungkan konfigurasi tumpukan dan atribut penerapan ke dalam objek node instance.

1. Gabungkan atribut buku masak bawaan instance ke dalam objek node.

   Atribut buku masak bawaan adalah semua `default` jenis. Jika satu atau beberapa atribut buku masak bawaan juga ditentukan dalam konfigurasi tumpukan dan atribut penerapan — biasanya karena Anda mendefinisikannya dengan JSON kustom — definisi konfigurasi tumpukan lebih diutamakan daripada definisi buku masak bawaan. Semua atribut buku masak bawaan lainnya hanya dimasukkan ke dalam objek node.

1. Gabungkan atribut buku masak khusus instance ke dalam objek node.

   Atribut kustom c ookbook biasanya salah satu `normal` atau `default` tipe. Atribut unik dimasukkan ke dalam objek node. Jika atribut buku masak kustom juga didefinisikan dalam Langkah 1-3 (biasanya karena Anda mendefinisikannya dengan JSON kustom), prioritas tergantung pada jenis atribut buku masak kustom:
   + Atribut yang didefinisikan dalam Langkah 1-3 lebih diutamakan daripada atribut buku masak khusus. `default`
   + `normal`Atribut ookbook c kustom lebih diutamakan daripada definisi dari Langkah 1-3. 

**penting**  
Jangan gunakan `default` atribut buku masak khusus untuk mengganti konfigurasi tumpukan atau atribut buku masak bawaan. Karena atribut buku masak kustom dievaluasi terakhir, `default` atribut memiliki prioritas terendah, dan tidak dapat mengganti apa pun.

# Mengganti Atribut Dengan JSON Kustom
<a name="workingcookbook-json-override"></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.

**catatan**  
Karena OpsWorks Stacks menangani Chef berjalan berbeda untuk tumpukan Windows daripada untuk tumpukan Linux, Anda tidak dapat menggunakan teknik yang dibahas di bagian ini untuk tumpukan Windows.

Cara termudah untuk mengganti atribut OpsWorks Stacks adalah dengan mendefinisikannya di JSON khusus, yang lebih diutamakan daripada konfigurasi tumpukan dan atribut penerapan serta atribut buku masak bawaan dan kustom. `default` Untuk informasi selengkapnya, lihat [Atribut Prioritas](workingcookbook-attributes-precedence.md).

**penting**  
Anda harus mengganti konfigurasi tumpukan dan atribut penerapan dengan hati-hati. Misalnya, mengganti atribut di `opsworks` namespace dapat mengganggu resep bawaan. Untuk informasi selengkapnya, lihat [Konfigurasi Stack dan Atribut Deployment](workingcookbook-json.md).

Anda juga dapat menggunakan JSON khusus untuk menentukan atribut unik, biasanya untuk meneruskan data ke resep kustom Anda. Atribut hanya dimasukkan ke dalam objek node, dan resep dapat mereferensikannya dengan menggunakan sintaks simpul Chef standar.

## Cara Menentukan JSON Kustom
<a name="workingcookbook-json-override-specify"></a>

Untuk menggunakan JSON kustom untuk mengganti nilai atribut, Anda harus terlebih dahulu menentukan nama atribut atribut yang sepenuhnya memenuhi syarat. Anda kemudian membuat objek JSON yang berisi atribut yang ingin Anda timpa, disetel ke nilai pilihan Anda. Untuk kenyamanan, [Konfigurasi Stack dan Atribut Deployment: Linux](attributes-json-linux.md) dan [Atribut Buku Masak Bawaan](attributes-recipes.md) dokumen yang biasa digunakan konfigurasi tumpukan, penerapan, dan atribut buku masak bawaan, termasuk nama yang sepenuhnya memenuhi syarat.

Hubungan orang tua-anak objek harus sesuai dengan node Chef yang memenuhi syarat penuh yang sesuai. Misalnya, Anda ingin mengubah atribut Apache berikut: 
+ [`keepalivetimeout`](attributes-recipes-apache.md#attributes-recipes-apache-keep-timeout)Atribut, yang node adalah `node[:apache][:keepalivetimeout]` dan memiliki nilai default`3`.
+ `logrotate`[`schedule`](attributes-recipes-apache.md#attributes-recipes-apache-log-schedule)Atribut, yang simpulnya`node[:apache][:logrotate][:schedule]`, dan memiliki nilai default`"daily"`.

Untuk mengganti atribut dan menetapkan nilai ke `5` dan`"weekly"`, masing-masing, Anda akan menggunakan JSON kustom berikut:

```
{
  "apache" : {
    "keepalivetimeout" : 5,
    "logrotate" : {
       "schedule" : "weekly"
    }
  }
}
```

## Kapan Menentukan JSON Kustom
<a name="workingcookbook-json-override-when"></a>

Anda dapat menentukan struktur JSON kustom untuk tugas-tugas berikut:
+ [Buat tumpukan baru](workingstacks-creating.md)
+ [Perbarui tumpukan](workingstacks-edit.md)
+ [Jalankan perintah tumpukan](workingstacks-edit.md)
+ [Kloning tumpukan](workingstacks-cloning.md)
+ [Menerapkan aplikasi](workingapps-deploying.md)

Untuk setiap tugas, OpsWorks Stacks menggabungkan atribut JSON kustom dengan konfigurasi tumpukan dan atribut penerapan dan mengirimkannya ke instance, untuk digabungkan ke objek node. Namun, perhatikan hal berikut:
+ Jika Anda menentukan JSON kustom saat membuat, mengkloning, atau memperbarui tumpukan, atribut digabungkan ke dalam konfigurasi tumpukan dan atribut penerapan untuk semua peristiwa siklus hidup berikutnya dan perintah tumpukan.
+ Jika Anda menentukan JSON kustom untuk penerapan, atribut digabungkan ke dalam konfigurasi tumpukan dan atribut penerapan hanya untuk peristiwa yang sesuai.

  Jika Anda ingin menggunakan atribut kustom tersebut untuk penerapan berikutnya, Anda harus secara eksplisit menentukan JSON kustom lagi.

Penting untuk diingat bahwa atribut hanya memengaruhi instance ketika digunakan oleh resep. Jika Anda mengganti nilai atribut tetapi tidak ada resep berikutnya yang mereferensikan atribut, perubahan tersebut tidak berpengaruh. Anda harus memastikan bahwa JSON kustom dikirim sebelum resep terkait dijalankan, atau memastikan bahwa resep yang sesuai dijalankan kembali. 

## Praktik Terbaik JSON Kustom
<a name="workingcookbook-json-override-best"></a>

Anda dapat menggunakan JSON khusus untuk mengganti atribut OpsWorks Stacks apa pun, tetapi memasukkan informasi secara manual agak rumit, dan tidak berada di bawah kontrol sumber apa pun. Kustom JSON paling baik digunakan untuk tujuan berikut:
+ Ketika Anda ingin mengganti hanya sejumlah kecil atribut, dan Anda tidak perlu menggunakan buku masak khusus.

  Dengan JSON khusus, Anda dapat menghindari overhead pengaturan dan pemeliharaan repositori buku masak hanya untuk mengganti beberapa atribut.
+ Nilai sensitif, seperti kata sandi atau kunci otentikasi.

  Atribut buku masak disimpan dalam repositori, sehingga informasi sensitif apa pun berisiko dikompromikan. Sebagai gantinya, tentukan atribut dengan nilai dummy dan gunakan JSON khusus untuk mengatur nilai sebenarnya.
+ Nilai yang diharapkan bervariasi.

  Misalnya, praktik yang disarankan adalah agar tumpukan produksi Anda didukung oleh tumpukan pengembangan dan pementasan yang terpisah. Misalkan tumpukan ini mendukung aplikasi yang menerima pembayaran. Jika Anda menggunakan JSON khusus untuk menentukan titik akhir pembayaran, Anda dapat menentukan URL pengujian untuk tumpukan pementasan Anda. Saat Anda siap untuk memigrasikan tumpukan yang diperbarui ke tumpukan produksi, Anda dapat menggunakan buku masak yang sama dan menggunakan JSON khusus untuk mengatur titik akhir pembayaran ke URL produksi.
+ Nilai yang spesifik untuk perintah stack atau deployment tertentu.

# Mengganti Atribut OpsWorks Stacks Menggunakan Atribut Cookbook Kustom
<a name="workingcookbook-cookbook-attributes"></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.

**catatan**  
Untuk tumpukan Windows, OpsWorks Stacks menggunakan Chef yang dijalankan terpisah untuk resep bawaan dan resep khusus. Ini berarti Anda tidak dapat menggunakan teknik yang dibahas di bagian ini untuk mengganti atribut bawaan untuk tumpukan Windows.

Custom JSON adalah cara mudah untuk mengganti konfigurasi tumpukan OpsWorks Stacks dan atribut buku masak bawaan, tetapi memiliki beberapa keterbatasan. Secara khusus, Anda harus memasukkan JSON khusus secara manual untuk setiap penggunaan, sehingga Anda tidak memiliki cara yang kuat untuk mengelola definisi. Pendekatan yang lebih baik adalah sering menggunakan file atribut buku masak khusus untuk mengganti atribut bawaan. Melakukannya memungkinkan Anda untuk menempatkan definisi di bawah kendali sumber.

Prosedur untuk menggunakan file atribut khusus untuk mengganti definisi OpsWorks Stacks sangat mudah.

**Untuk mengganti definisi atribut OpsWorks Stacks**

1. Siapkan repositori buku masak, seperti yang dijelaskan dalam. [Buku Masak dan Resep](workingcookbook.md)

1. Buat buku masak dengan nama yang sama dengan buku masak bawaan yang berisi atribut yang ingin Anda timpa. Misalnya, untuk mengganti atribut Apache, buku masak harus diberi nama apache2. 

1. Tambahkan `attributes` folder ke buku masak dan tambahkan file ke folder bernama `customize.rb` itu. 

1. Tambahkan definisi atribut ke file untuk setiap atribut buku masak bawaan yang ingin Anda timpa, setel ke nilai pilihan Anda. Atribut harus `normal` tipe atau lebih tinggi dan memiliki nama node yang sama persis dengan atribut OpsWorks Stacks yang sesuai. Untuk daftar detail atribut OpsWorks Stacks, termasuk nama node, lihat [Konfigurasi Stack dan Atribut Deployment: Linux](attributes-json-linux.md) dan[Atribut Buku Masak Bawaan](attributes-recipes.md). Untuk informasi selengkapnya tentang atribut dan atribut file, lihat [Tentang File Atribut](http://docs.chef.io/attributes.html).
**penting**  
Atribut Anda harus `normal` tipe untuk mengganti atribut OpsWorks Stacks; `default` tipe tidak diutamakan. Misalnya, jika `customize.rb` file Anda berisi definisi `default[:apache][:keepalivetimeout] = 5` atribut, atribut yang sesuai dalam file `apache.rb` atribut bawaan dievaluasi terlebih dahulu, dan diutamakan. Untuk informasi selengkapnya, lihat [Mengesampingkan Atribut](workingcookbook-attributes.md).

1. Ulangi Langkah 2 - 4 untuk setiap buku masak bawaan dengan atribut yang ingin Anda timpa.

1. Aktifkan buku masak khusus untuk tumpukan Anda dan berikan informasi yang diperlukan untuk OpsWorks Stacks untuk mengunduh buku masak Anda ke instance tumpukan. Untuk informasi selengkapnya, lihat [Memasang Buku Masak Kustom](workingcookbook-installingcustom-enable.md).

**catatan**  
Untuk panduan lengkap tentang prosedur ini, lihat. [Mengesampingkan Atribut Bawaan](cookbooks-101-opsworks-attributes.md)

Objek node yang digunakan oleh peristiwa siklus hidup berikutnya, perintah penerapan, dan perintah tumpukan sekarang akan berisi definisi atribut Anda, bukan nilai Stacks. OpsWorks 

Misalnya, untuk mengganti Apache bawaan `keepalivetimeout` dan `logrotate schedule` pengaturan yang dibahas di[Cara Menentukan JSON Kustom](workingcookbook-json-override.md#workingcookbook-json-override-specify), tambahkan `apache2` buku masak ke repositori Anda dan tambahkan `customize.rb` file ke folder buku masak dengan konten berikut. `attributes`

```
normal[:apache][:keepalivetimeout] = 5
normal[:apache][:logrotate][:schedule] = 'weekly'
```

**penting**  
Anda tidak boleh mengganti atribut OpsWorks Stacks dengan memodifikasi salinan file atribut bawaan terkait. Jika, misalnya, Anda menyalin `apache.rb` ke `apache2/attributes` folder Anda dan memodifikasi beberapa pengaturannya, Anda pada dasarnya mengganti setiap atribut dalam file bawaan. Resep akan menggunakan definisi atribut dari salinan Anda dan mengabaikan file bawaan. Jika OpsWorks Stacks kemudian memodifikasi file atribut bawaan, resep tidak akan memiliki akses ke perubahan kecuali Anda memperbarui salinan Anda secara manual.   
Untuk menghindari situasi ini, semua buku masak bawaan berisi file `customize.rb` atribut kosong, yang diperlukan di semua modul melalui `include_attribute` arahan. Dengan mengganti atribut dalam salinan Anda`customize.rb`, Anda hanya memengaruhi atribut spesifik tersebut. Resep akan mendapatkan nilai atribut lain dari file atribut bawaan, dan secara otomatis mendapatkan nilai saat ini dari atribut apa pun yang belum Anda ganti.  
Pendekatan ini membantu Anda menjaga jumlah atribut di repositori buku masak Anda tetap kecil, yang mengurangi overhead pemeliharaan Anda dan membuat upgrade future lebih mudah dikelola.