

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Schritt 14: Aktualisieren des Rezeptbuchs, um Iterationsmethoden zu verwenden
<a name="gettingstarted-cookbooks-iteration"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

Aktualisieren Sie Ihr Rezeptbuch, indem Sie ein Rezept hinzufügen, das eine *Iteration* einsetzt. Bei dieser Methode wird der Rezeptcode mehrmals wiederholt. Das Rezept zeigt im Protokoll Meldungen zu einem Data Bag-Element an, das verschiedene Inhalte aufweist. 

**So aktualisieren Sie das Rezeptbuch auf der Instance und führen das neue Rezept aus:**

1. Erstellen Sie auf Ihrer lokalen Workstation im Unterverzeichnis `recipes` im Verzeichnis `opsworks_cookbook_demo` eine Datei namens `iteration_demo.rb`, die den folgenden Code enthält:

   ```
   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
   ```
**Anmerkung**  
Das Schreiben des vorherigen Rezepts geht schneller, ist flexibler und weniger fehleranfällig als das Schreiben des folgenden Rezeptcodes, bei dem keine Iterationsmethoden verwendet werden:  

   ```
   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. Führen Sie am Terminal oder an der Eingabeaufforderung den Befehl **tar** aus, um eine neue Version der Datei `opsworks_cookbook_demo.tar.gz` zu erstellen, die das Verzeichnis `opsworks_cookbook_demo` und seinen aktualisierten Inhalt enthält.

1. Laden Sie die aktualisierte Datei `opsworks_cookbook_demo.tar.gz` in Ihren S3-Bucket hoch.

1. Folgen Sie den Anweisungen in [Schritt 5: Aktualisieren des Rezeptbuchs auf der Instance und Ausführen des Rezepts](gettingstarted-cookbooks-copy-cookbook.md), um das Rezeptbuch auf der Instance zu aktualisieren und das Rezept auszuführen. Geben Sie im Schritt „Rezept ausführen” für **Recipes to execute (Auszuführende Rezepte)** **opsworks\$1cookbook\$1demo::iteration\$1demo** ein. 

**So testen Sie das Rezept:**

1. Wählen Sie , während die Seite **Running command execute\$1recipes (Befehl execute\$1recipes wird ausgeführt)** noch geöffnet ist, für **cookbooks-demo1** und **Log** die Option **show (anzeigen)** aus. Die Protokollseite **execute\$1recipes** wird angezeigt.

1. Führen Sie im Protokoll einen Bildlauf nach unten durch, um die Einträge zu finden, die den folgenden ähneln:

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

   Das Rezept zeigt im Protokoll Meldungen zu einem Data Bag-Element an, das verschiedene Inhalte aufweist. Das Data Bag-Element befindet sich im `aws_opsworks_stack`-Data Bag. Das Data Bag-Element hat einen Inhalt namens `custom_cookbooks_source`. Der Inhalt ist in sechs Inhalte mit den Bezeichnungen `type`, `url``username`, `password`, `ssh_key` und `revision` unterteilt, dessen Werte ebenfalls angezeigt werden.

Im [nächsten Schritt](gettingstarted-cookbooks-conditional-logic.md) aktualisieren Sie das Rezeptbuch, so dass ein Rezeptcode nur ausgeführt wird, wenn bestimmte Bedingungen erfüllt sind.