Attribute - 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.

Attribute

Wichtig

Das Tool AWS OpsWorks Stacks Der 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 den AWS Support Team ein AWS Re:post oder durch AWS Premium-Support.

Rezepte und Vorlagen sind von einer ganzen Reihe von Werten, beispielsweise Konfigurationseinstellungen, abhängig. Statt diese Werte direkt in Rezepten oder Vorlagen fest zu programmieren, können Sie eine Attributdatei mit Attributen für die benötigten Werte erstellen. Diese Attribute verwenden Sie dann statt der tatsächlichen Werte in Rezepten und Vorlagen. Der Vorteil dieser Methode besteht darin, dass Sie Werte überschreiben können, ohne Änderungen am Rezeptbuch vornehmen zu müssen. Daher sollten Sie folgende Arten von Werten stets durch Attribute definieren:

  • Werte, die sich je nach Stack oder im Laufe der Zeit ändern können, z. B. Benutzernamen

    Wenn Sie solche Werte fest programmieren, müssen Sie jedes Mal, wenn sich ein Wert ändert, das Rezept bzw. die Vorlage ändern. Wenn Sie diese Werte jedoch durch Attribute definieren, können Sie dieselben Rezeptbücher auf allen Stacks verwenden und müssen nur die entsprechenden Attribute überschreiben.

  • Sensible Werte wie Passwörter oder geheime Schlüssel

    Wenn Sie sensible Werte in Rezeptbüchern speichern, ist die Gefahr höher, dass diese offengelegt werden. Definieren Sie stattdessen Attribute mit Platzhalterwerten und überschreiben Sie diese mit den tatsächlichen Werten. Der beste Weg, solche Attribute zu überschreiben, ist benutzerdefiniertJSON. Weitere Informationen finden Sie unter Benutzerdefiniert verwenden JSON.

Weitere Informationen zu Attributen und wie diese überschrieben werden können, finden Sie unter Überschreiben der Attribute.

Das nachfolgende Beispiel ist ein Auszug aus einer Beispielattributdatei.

... default["apache"]["listen_ports"] = [ '80','443' ] default["apache"]["contact"] = 'ops@example.com' default["apache"]["timeout"] = 120 default["apache"]["keepalive"] = 'Off' default["apache"]["keepaliverequests"] = 100 default["apache"]["keepalivetimeout"] = 3 default["apache"]["prefork"]["startservers"] = 16 default["apache"]["prefork"]["minspareservers"] = 16 default["apache"]["prefork"]["maxspareservers"] = 32 default["apache"]["prefork"]["serverlimit"] = 400 default["apache"]["prefork"]["maxclients"] = 400 default["apache"]["prefork"]["maxrequestsperchild"] = 10000 ...

AWS OpsWorks Stacks definiert Attribute mithilfe der folgenden Syntax:

node.type["attribute"]["subattribute"]["..."]=value

Sie können Doppelpunkte (:) wie folgt verwenden:

node.type[:attribute][:subattribute][:...]=value

Eine Attributdefinition besteht aus den folgenden Komponenten:

node.

Das Präfix node. ist optional und wird in der Regel ausgelassen, wie in diesem Beispiel gezeigt.

type

Über den Typ wird festgelegt, ob das Attribut überschrieben werden kann. AWS OpsWorks Stacks-Attribute verwenden in der Regel einen der folgenden Typen:

  • default wird am häufigsten verwendet, da Attribute dieses Typs überschrieben werden können.

  • normaldefiniert ein Attribut, das eines der Standardattribute überschreibt AWS OpsWorks Stapelt Attributwerte.

Anmerkung

Chef unterstützt zusätzliche Typen, die nicht erforderlich sind für AWS OpsWorks Stapelbar, könnte aber für Ihr Projekt nützlich sein. Weitere Informationen zu Attributen finden Sie unter About Attributes.

attribute name

Der Attributname folgt der Standard-Chef-Knotensyntax, [:attribute][:subattribute][...]. Sie können für Attribute beliebige Namen verwenden. Allerdings werden benutzerdefinierte Rezeptbuchattribute, wie in Überschreiben der Attribute erläutert, mit dem Knotenobjekt der Instance zusammengeführt, zusammen mit den Attributen von der Stack-Konfiguration und den Bereitstellungsattributen sowie dem Ohai-Tool von Chef. Häufig verwendete Konfigurationsnamen wie port oder user werden in zahlreichen Rezeptbüchern verwendet.

Um Namensüberschneidungen zu vermeiden, sollten Sie qualifizierte Attributnamen mit mindestens zwei Elementen erstellen, wie in diesem Beispiel gezeigt. Das erste Element sollte eindeutig sein und bezieht sich in der Regel auf einen Produktnamen wie Apache. Ihm folgen ein oder mehrere Unterattribute, die den eigentlichen Wert festlegen, z. B. [:user] oder [:port]. Sie können beliebig viele Unterattribute verwenden; dies hängt auch von der Struktur Ihres Projekts ab.

value

Ein Attribut kann folgende Werttypen aufweisen:

  • Eine Zeichenfolge, z. B. default[:apache][:keepalive] = 'Off'

  • Eine Zahl (ohne Anführungszeichen), z. B. default[:apache][:timeout] = 120

  • Ein boolescher Wert, entweder true oder false (ohne Anführungszeichen)

  • Eine Liste mit Werten, z. B. default[:apache][:listen_ports] = [ '80','443' ]

Die Attributdatei ist eine Ruby-Anwendung, daher können Sie auch Knotensyntax und logische Operatoren verwenden, um Werte basierend auf anderen Attributen zuzuweisen. Weitere Informationen zur Definition von Attributen finden Sie unter About Attributes. Beispiele für funktionierende Attributdateien finden Sie in AWS OpsWorks Stapelt die integrierten Kochbücher bei https://github.com/aws/ opsworks-cookbooks.