

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paso 14: Actualizar el libro de recetas para usar la iteración
<a name="gettingstarted-cookbooks-iteration"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

Actualice el libro de recetas añadiendo una receta que utiliza la *iteración*, una técnica que repite el código de la receta múltiples veces. Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado. 

**Para actualizar el libro de recetas en la instancia y ejecutar la nueva receta**

1. En la estación de trabajo local, en el subdirectorio `recipes` del directorio `opsworks_cookbook_demo`, cree un archivo llamado `iteration_demo.rb` que contenga el siguiente código:

   ```
   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
   ```
**nota**  
Escribir el código de la receta anterior es más corto, más flexible y genera menos errores que escribir el siguiente código de receta que no emplea iteración:  

   ```
   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. En la línea de comandos o terminal, utilice el comando **tar** para crear una nueva versión del archivo `opsworks_cookbook_demo.tar.gz` que contenga el directorio `opsworks_cookbook_demo` y su contenido actualizado.

1. Cargue el archivo `opsworks_cookbook_demo.tar.gz` actualizado en el bucket de S3.

1. Siga el procedimiento descrito en [Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta](gettingstarted-cookbooks-copy-cookbook.md) para actualizar el libro de recetas en la instancia y ejecutar la receta. En el procedimiento "To run the recipe" para **Recipes to execute (Recetas para ejecutar)**, escriba **opsworks\$1cookbook\$1demo::iteration\$1demo**. 

**Para probar la receta**

1. Mientras se muestra la página **Running command execute\$1recipes (Ejecutando comando execute\$1recipes)** de los procedimientos anteriores, en **cookbooks-demo1**, en **Log (Registro)**, elija **show (mostrar)**. Se muestra la página del registro **execute\$1recipes**.

1. Desplácese hacia abajo por el registro y busque entradas con un aspecto similar al siguiente:

   ```
   [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]' **********
   ```

   Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado. El elemento de bolsa de datos está en la bolsa de datos `aws_opsworks_stack`. El elemento de bolsa de datos tiene contenido denominado `custom_cookbooks_source`. Dentro de este contenido hay seis contenidos denominados `type`, `url`, `username`, `password`, `ssh_key` y `revision`; también se muestran sus valores.

En el [siguiente paso](gettingstarted-cookbooks-conditional-logic.md), actualizará el libro de recetas para ejecutar el código de la receta solo si se cumplen determinadas condiciones.