Überschreiben von Attributen mit einem benutzerdefinierten JSON-Objekt - 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.

Überschreiben von Attributen mit einem benutzerdefinierten JSON-Objekt

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 oder über den AWS Premium-Support.

Anmerkung

Da AWS OpsWorks Stacks Chef-Läufe für Windows-Stacks anders handhabt als für Linux-Stacks, können Sie die in diesem Abschnitt beschriebenen Techniken nicht für Windows-Stacks verwenden.

Die einfachste Möglichkeit, ein AWS OpsWorks Stacks-Attribut zu überschreiben, besteht darin, es in benutzerdefiniertem JSON zu definieren, das Vorrang vor Stackkonfigurations- und Bereitstellungsattributen sowie integrierten und benutzerdefinierten Cookbook-Attributen hat. default Weitere Informationen finden Sie unter Priorität von Attributen.

Wichtig

Sie sollten die Attribute der Stack-Konfiguration und Bereitstellung mit Bedacht überschreiben. Beispielsweise kann das Überschreiben von Attributen im opsworks-Namespace integrierte Rezepte stören. Weitere Informationen finden Sie unter Attribute für die Stack-Konfiguration und -Bereitstellung.

Sie können auch ein benutzerdefiniertes JSON-Objekt verwenden, um eindeutige Attribute zur Übertragung von Daten an Ihre benutzerdefinierten Rezepte zu definieren. Die Attribute werden einfach in das Knotenobjekt integriert und Rezepte können mithilfe der standardmäßigen Chef-Knotensyntax auf diese verweisen.

Angeben eines benutzerdefinierten JSON-Objekts

Um mit einem benutzerdefinierten JSON-Objekt einen Attributwert zu überschreiben, müssen Sie zuerst den vollständig qualifizierten Attributnamen dieses Attributs ermitteln. Anschließend erstellen Sie ein JSON-Objekt mit den Attributen, die Sie überschreiben möchten, eingestellt auf Ihre bevorzugten Werte. Zur Vereinfachung nutzen die Dokumente Stack-Konfigurations- und Bereitstellungsattribute: Linux und Integrierte Rezeptbuchattribute normalerweise Stack-Konfigurations-, Bereitstellungs- und integrierte Rezeptbuchattribute, einschließlich ihrer vollständig qualifizierten Namen.

Die Beziehungen zwischen über- und untergeordneten Elementen des Objekts müssen mit den entsprechenden vollständig qualifizierten Chef-Knoten übereinstimmen. Angenommen Sie möchten z. B. die folgenden Apache-Attribute ändern:

  • Das keepalivetimeout-Attribut, dessen Knoten node[:apache][:keepalivetimeout] ist und das einen Standardwert von 3 hat.

  • Das logrotate schedule-Attribut, dessen Knoten node[:apache][:logrotate][:schedule] ist und hat einen Standardwert von "daily" hat.

Um die Attribute zu überschreiben und die Werte auf 5 und "weekly" festzulegen, nutzen Sie das folgende benutzerdefinierte JSON-Objekt:

{ "apache" : { "keepalivetimeout" : 5, "logrotate" : { "schedule" : "weekly" } } }

Angeben des benutzerdefinierten JSON-Objekts zum richtigen Zeitpunkt

Sie können eine benutzerdefinierte JSON-Struktur für die folgenden Aufgaben angeben:

Für jede Aufgabe führt AWS OpsWorks Stacks die benutzerdefinierten JSON-Attribute mit den Stackkonfigurations- und Bereitstellungsattributen zusammen und sendet sie an die Instanzen, damit sie mit dem Node-Objekt zusammengeführt werden. Beachten Sie jedoch Folgendes:

  • Wenn Sie ein benutzerdefiniertes JSON-Objekt beim Erstellen, Klonen oder Aktualisieren eines Stacks angeben, werden die Attribute in die Attribute der Stack-Konfiguration und der Bereitstellung für alle nachfolgenden Lebenszyklusereignisse und Stack-Befehle eingeführt.

  • Wenn Sie ein benutzerdefiniertes JSON-Objekt für eine Bereitstellung angeben, werden die Attribute nur für das entsprechende Ereignis in die Attribute der Stack-Konfiguration und der Bereitstellung eingeführt.

    Wenn Sie diese benutzerdefinierten Attribute für nachfolgende Bereitstellungen verwenden möchten, müssen Sie das benutzerdefinierte JSON-Objekt noch einmal explizit angeben.

Beachten Sie, dass Attribute nur Auswirkungen auf die Instance haben, wenn sie von Rezepten verwendet werden. Wenn Sie einen Attributwert überschreiben, aber keine nachfolgenden Rezepte auf dieses Attribut zurückgreifen, hat die Änderung keine Auswirkungen. Sie müssen entweder sicherstellen, dass das benutzerdefinierte JSON-Objekt gesendet wurde, bevor die damit in Verbindung stehenden Rezepte ausgeführt werden, oder dass die in Verbindung stehenden Rezepte noch einmal ausgeführt werden.

Bewährte Methoden für die Verwendung eines benutzerdefinierten JSON-Objekts

Sie können benutzerdefiniertes JSON verwenden, um jedes AWS OpsWorks Stacks-Attribut zu überschreiben, aber die manuelle Eingabe der Informationen ist etwas umständlich und unterliegt keiner Quellcodeverwaltung. Ein benutzerdefiniertes JSON-Objekt eignet sich am besten für folgende Situationen:

  • Wenn Sie nur eine kleine Anzahl von Attributen überschreiben möchten und Sie nicht anderweitig auf die Verwendung benutzerdefinierter Rezeptbücher angewiesen sind.

    Durch die Verwendung eines benutzerdefinierten JSON-Objekts können Sie den Aufwand beim Einrichten und Warten eines Rezeptbuch-Repositorys, nur um ein paar Attribute zu überschreiben, vermeiden.

  • Sensible Daten, wie z. B. Passwörter oder Authentifizierungsschlüssel.

    Rezeptbuchattribute werden in einem Repository gespeichert, so dass alle vertraulichen Informationen einem gewissen Risiko ausgesetzt sind, kompromittiert zu werden. Definieren Sie Attribute stattdessen mit Dummy-Werten und benutzen Sie das benutzerdefinierte JSON-Objekt, um die tatsächlichen Werte anzugeben.

  • Werte, die erfahrungsgemäß abweichen.

    Ein empfohlenes Verfahren ist beispielsweise, dass Ihre Produktion den Stack durch separate Entwicklungs- und Staging-Stacks unterstützt. Angenommen, diese Stacks unterstützen eine Anwendung, die Zahlungen akzeptiert. Wenn Sie ein benutzerdefiniertes JSON-Objekt nutzen, um den Endpunkt der Zahlung anzugeben, können Sie eine Test-URL für Ihren Staging-Stack angeben. Wenn Sie bereit sind, einen aktualisierten Stack zu Ihrem Produktions-Stack zu migrieren, können Sie die gleichen Rezeptbücher und ein benutzerdefiniertes JSON-Objekt benutzen, um den Endpunkt der Zahlung auf die Produktions-URL zu setzen.

  • Werte, die einem bestimmten Stack- oder Bereitstellungsbefehl zugeordnet sind.