

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

# Langkah 14: Perbarui Cookbook untuk Menggunakan Iterasi
<a name="gettingstarted-cookbooks-iteration"></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.

Perbarui buku masak Anda dengan menambahkan resep yang menggunakan *iterasi*, teknik yang mengulangi kode resep beberapa kali. Resep ini menampilkan pesan di log untuk item tas data yang berisi beberapa konten. 

**Untuk memperbarui buku masak pada instance dan menjalankan resep baru**

1. Di workstation lokal Anda, di `recipes` subdirektori di `opsworks_cookbook_demo` direktori, buat file bernama `iteration_demo.rb` yang berisi kode berikut:

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   stack["custom_cookbooks_source"].each do |content|
     Chef::Log.info("********** '#{content}' **********")
   end
   ```
**catatan**  
Menulis kode resep sebelumnya lebih pendek, lebih fleksibel, dan kurang rawan kesalahan daripada menulis kode resep berikut yang tidak menggunakan iterasi:  

   ```
   stack = search("aws_opsworks_stack").first
   Chef::Log.info("********** Content of 'custom_cookbooks_source' **********")
   
   Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********")
   Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********")
   Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********")
   Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********")
   Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********")
   Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
   ```

1. Di terminal atau command prompt, gunakan **tar** perintah buat versi baru `opsworks_cookbook_demo.tar.gz` file, yang berisi `opsworks_cookbook_demo` direktori dan isinya yang diperbarui.

1. Unggah `opsworks_cookbook_demo.tar.gz` file yang diperbarui ke bucket S3 Anda.

1. Ikuti prosedur [Langkah 5: Perbarui Buku Masak pada Instance dan Jalankan Resepnya](gettingstarted-cookbooks-copy-cookbook.md) untuk memperbarui buku masak pada instance dan menjalankan resepnya. Dalam prosedur “Menjalankan resep”, **agar Resep dijalankan**, ketik**opsworks\$1cookbook\$1demo::iteration\$1demo**. 

**Untuk menguji resepnya**

1. ****Dengan **perintah Running execute\$1recipes** halaman ditampilkan dari prosedur sebelumnya, untuk **cookbooks-demo1**, untuk Log, pilih show.**** Halaman log **execute\$1recipes ditampilkan**.

1. Gulir ke bawah melalui log dan temukan entri yang terlihat mirip dengan yang berikut ini:

   ```
   [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' **********
   [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********
   ```

   Resep ini menampilkan pesan di log untuk item tas data yang berisi beberapa konten. Item tas data ada di tas `aws_opsworks_stack` data. Item tas data memiliki konten bernama`custom_cookbooks_source`. Di dalam konten ini ada enam konten bernama`type`, `url``username`,`password`,`ssh_key`,, dan`revision`; nilainya juga ditampilkan.

Pada [langkah berikutnya](gettingstarted-cookbooks-conditional-logic.md), Anda akan memperbarui buku masak untuk menjalankan kode resep hanya jika kondisi tertentu terpenuhi.