Fase 14. Aggiornamento del libro di ricette per l'utilizzo dell'iterazione - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 14. Aggiornamento del libro di ricette per l'utilizzo dell'iterazione

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

Puoi aggiornare il libro di ricette aggiungendo una ricetta che utilizza l'iterazione, una tecnica che ripete il codice della ricetta più volte. Questa ricetta visualizza i messaggi nel log per un contenitore di dati contenente più contenuti.

Per aggiornare il libro di ricette nell'istanza ed eseguire la nuova ricetta
  1. Nella workstation locale, nella sottodirectory recipes della directory opsworks_cookbook_demo creare un file denominato iteration_demo.rb contenente il seguente codice:

    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

    La scrittura del codice della ricetta precedente è un'operazione più breve, più flessibile e meno soggetta a errori rispetto alla scrittura del seguente codice della ricetta che non utilizza l'iterazione:

    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']}\"]' **********")
  2. Al terminale o al prompt dei comandi, utilizzare il comando tar per creare una nuova versione del file opsworks_cookbook_demo.tar.gz, che contiene la directory opsworks_cookbook_demo e il relativo contenuto aggiornato.

  3. Caricare il file opsworks_cookbook_demo.tar.gz aggiornato nel bucket S3.

  4. Seguire la procedura descritta nella Fase 5. Aggiornamento del libro di ricette nell'istanza ed esecuzione della ricetta per aggiornare il libro di ricette nell'istanza e per eseguire la ricetta. Nella procedura illustrata nella sezione "Per eseguire la ricetta", in Recipes to execute (Ricette da eseguire), digitare opsworks_cookbook_demo::iteration_demo.

Per testare la ricetta
  1. Con la pagina di esecuzione del comando execute_recipes visualizzata dalle precedenti procedure, in cookbooks-demo1, in Log, scegliere show (mostra). Viene visualizzata la pagina del log del comando execute_recipes.

  2. Scorrere il log verso il basso e trovare le voci simili alle seguenti:

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

    Questa ricetta visualizza i messaggi nel log per un contenitore di dati contenente più contenuti. L'elemento del contenitore di dati è incluso nel contenitore di dati aws_opsworks_stack. L'elemento del contenitore di dati include un contenuto denominato custom_cookbooks_source. All'interno di questo contenuto sono disponibili sei contenuti denominati type, url, username, password, ssh_key, e revision. Vengono visualizzati anche i relativi valori.

Nella fase successiva aggiornerai il libro di ricette per l'esecuzione del codice della ricetta solo se vengono soddisfatte determinate condizioni.