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
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
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:
-
Erstellen Sie auf Ihrer lokalen Workstation im Unterverzeichnis
recipesim Verzeichnisopsworks_cookbook_demoeine Datei namensiteration_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}' **********") endAnmerkung
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']}\"]' **********") -
Führen Sie am Terminal oder an der Eingabeaufforderung den Befehl tar aus, um eine neue Version der Datei
opsworks_cookbook_demo.tar.gzzu erstellen, die das Verzeichnisopsworks_cookbook_demound seinen aktualisierten Inhalt enthält. -
Laden Sie die aktualisierte Datei
opsworks_cookbook_demo.tar.gzin Ihren S3-Bucket hoch. -
Folgen Sie den Anweisungen in Schritt 5: Aktualisieren des Rezeptbuchs auf der Instance und Ausführen des Rezepts, 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_cookbook_demo::iteration_demoein.
So testen Sie das Rezept:
-
Wählen Sie , während die Seite Running command execute_recipes (Befehl execute_recipes wird ausgeführt) noch geöffnet ist, für cookbooks-demo1 und Log die Option show (anzeigen) aus. Die Protokollseite execute_recipes wird angezeigt.
-
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 namenscustom_cookbooks_source. Der Inhalt ist in sechs Inhalte mit den Bezeichnungentype,urlusername,password,ssh_keyundrevisionunterteilt, dessen Werte ebenfalls angezeigt werden.
Im nächsten Schritt aktualisieren Sie das Rezeptbuch, so dass ein Rezeptcode nur ausgeführt wird, wenn bestimmte Bedingungen erfüllt sind.