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
Das Tool AWS OpsWorks Stacks Der 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 AWS Support Team ein AWS Re:post oder
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
recipes
im Verzeichnisopsworks_cookbook_demo
eine 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}' **********") 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']}\"]' **********")
-
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 Verzeichnisopsworks_cookbook_demo
und seinen aktualisierten Inhalt enthält. -
Laden Sie die aktualisierte Datei
opsworks_cookbook_demo.tar.gz
in 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_demo
ein.
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
,url
username
,password
,ssh_key
undrevision
unterteilt, 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.