Schritt 3: Erstellen und Bereitstellen eines benutzerdefinierten Rezeptbuchs - AWS OpsWorks

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 3: Erstellen und Bereitstellen eines benutzerdefinierten Rezeptbuchs

Wichtig

Der AWS OpsWorks Stacks Service hat am 26. Mai 2024 das Ende seiner Nutzungsdauer 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 oder über den AWS Premium-Support.

Der Stack ist noch nicht ganz bereit:

  • Ihre Anwendung benötigt einige Informationen für den Zugriff auf den MySQL-Datenbankserver und den Amazon S3 S3-Bucket, z. B. den Datenbank-Hostnamen und den Amazon S3 S3-Bucket-Namen.

  • Sie müssen eine Datenbank im MySQL-Datenbank-Server einrichten und eine Tabelle für die Metadaten der Fotos erstellen.

Sie könnten diese Aufgaben manuell erledigen, aber ein besserer Ansatz besteht darin, das Chef-Rezept zu implementieren und AWS OpsWorks Stacks das Rezept automatisch auf den entsprechenden Instances ausführen zu lassen. Chef-Rezepte sind spezialisierte Ruby-Anwendungen, mit denen AWS OpsWorks Stacks Aufgaben auf Instanzen wie das Installieren von Paketen oder das Erstellen von Konfigurationsdateien ausführt. Die Rezepte sind in einem Rezeptbuch gebündelt, das mehrere Rezepte und zugehörige Dateien enthalten kann, wie z. B. Vorlagen für Konfigurationsdateien. Das Kochbuch befindet sich in einem Repository wie GitHub und muss eine Standardverzeichnisstruktur haben. Wenn Sie noch nicht über ein benutzerdefiniertes Rezeptbuch-Repository verfügen, finden Sie unter Rezeptbuch-Repositorys Informationen, wie Sie es erstellen können.

In diesem Beispiel wurde das Kochbuch für Sie implementiert und in einem öffentlichen GitHub Repository gespeichert. Das Rezeptbuch enthält zwei Rezepte, appsetup.rb und dbsetup.rb, sowie eine Vorlagendatei, db-connect.php.erb.

Das appsetup.rb Rezept erstellt eine Konfigurationsdatei, die die Informationen enthält, die die Anwendung für den Zugriff auf die Datenbank und den Amazon S3 S3-Bucket benötigt. Im Grunde handelt es sich um eine leicht modifizierte Version des appsetup.rb Rezepts, welches in Verknüpfen der Anwendung mit der Datenbank beschrieben ist. Der primäre Unterschied besteht in den an die Vorlage übermittelten Variablen bezüglich den Zugriffsinformationen.

Die ersten vier Attribute definieren die Datenbankverbindungseinstellungen und werden automatisch von AWS OpsWorks Stacks definiert, wenn Sie die MySQL-Instanz erstellen.

Es gibt zwei Unterschiede zwischen diesen Variablen und jenen des Originalrezepts:

  • Wie im Originalrezept stellt die Variable table den Namen der Datenbanktabelle dar, die von dbsetup.rb erstellt wird, und wird auf den Wert eines Attributs gesetzt, das in der Attribute-Datei des Rezeptbuchs definiert ist.

    Das Attribut hat jedoch einen anderen Namen: [:photoapp][:dbtable].

  • Die s3bucket Variable ist spezifisch für dieses Beispiel und wird auf den Wert eines Attributs gesetzt, das den Amazon S3 S3-Bucket-Namen darstellt,[:photobucket].

    [:photobucket] wird unter Verwendung eines benutzerdefinierten JSON-Objekts definiert, wie später beschrieben. Weitere Informationen zu Attributen finden Sie unter Attribute.

Weitere Informationen zu Attributen finden Sie unter Attribute.

Das Rezept dbsetup.rb richtet eine Datenbanktabelle für die jeweiligen Foto-Metadaten ein. Im Grunde handelt es sich um eine leicht modifizierte Version des Rezepts dbsetup.rb, welches in Einrichten der Datenbank beschrieben ist. Dort finden Sie eine detaillierte Beschreibung.

Der einzige Unterschied zwischen diesem Beispiel und dem Originalrezept ist das Datenbankschema, das aus drei Spalten besteht, die die ID, URL und Bildunterschrift jedes Fotos enthalten, das im Amazon S3 S3-Bucket gespeichert ist.

Die Rezepte sind bereits implementiert, sodass Sie lediglich das Photoapp-Kochbuch im Kochbuch-Cache jeder Instanz bereitstellen müssen. AWS OpsWorks Stacks führt dann die zwischengespeicherten Rezepte aus, wenn das entsprechende Lebenszyklusereignis eintritt, wie später beschrieben.

So stellen Sie ein PhotoApp-Rezeptbuch bereit
  1. Wählen Sie auf der Seite AWS OpsWorks Stacks Stack die Option Stack-Einstellungen und dann Bearbeiten aus.

  2. Im Abschnitt Configuration Management (Konfigurationsverwaltung):

    • Legen Sie Use custom Chef Cookbooks (Benutzerdefinierte Chef-Rezeptbücher verwenden) auf Yes (Ja) fest,

    • Legen Sie Repository type (Repository-Typ) auf "Git" fest.

    • Legen Sie Repository URL (Repository-URL) auf git://github.com/amazonwebservices/opsworks-example-cookbooks.git fest.

  3. Wählen Sie auf der Seite Stack die Option Run Command (Befehl ausführen), wählen Sie den Stack-Befehl Update Custom Cookbooks (Benutzerdefinierte Kochbücher aktualisieren) aus und wählen dann Update Custom Cookbooks (Benutzerdefinierte Kochbücher aktualisieren), um das neue Rezeptbuch im Rezeptbuch-Cache der Instance zu installieren.