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
importante
La AWS OpsWorks Stacks El 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 existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tiene alguna duda sobre la migración, póngase en contacto con el AWS Support Equipo en AWS Re:post
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
-
En la estación de trabajo local, en el subdirectorio
recipes
del directorioopsworks_cookbook_demo
, cree un archivo llamadoiteration_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']}\"]' **********")
-
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 directorioopsworks_cookbook_demo
y su contenido actualizado. -
Cargue el archivo
opsworks_cookbook_demo.tar.gz
actualizado en el bucket de S3. -
Siga el procedimiento descrito en Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta 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_cookbook_demo::iteration_demo
.
Para probar la receta
-
Mientras se muestra la página Running command execute_recipes (Ejecutando comando execute_recipes) de los procedimientos anteriores, en cookbooks-demo1, en Log (Registro), elija show (mostrar). Se muestra la página del registro execute_recipes.
-
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 denominadocustom_cookbooks_source
. Dentro de este contenido hay seis contenidos denominadostype
,url
,username
,password
,ssh_key
yrevision
; también se muestran sus valores.
En el siguiente paso, actualizará el libro de recetas para ejecutar el código de la receta solo si se cumplen determinadas condiciones.