Attributes - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Attributes

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

Ricette e modelli dipendono da vari valori, come per esempio le impostazioni di configurazione. Anziché impostare come hardcoded tali valori direttamente nelle ricette o nei modelli, è possibile creare un file di attributo con un attributo che rappresenta ogni valore. È quindi possibile utilizzare gli attributi nelle proprie ricette o nei propri modelli anziché valori espliciti. Il vantaggio di utilizzare gli attributi è che è possibile sostituire i relativi valori senza toccare il libro di ricette. Per questo motivo, bisogna sempre utilizzare gli attributi per definire i seguenti tipi di valori:

  • I valori che potrebbero variare da stack a stack o con il tempo, come per esempio i nomi utente.

    Se si impostano come hardcoded tali valori, si deve modificare la ricetta o il modello ogni volta che bisogna modificare un valore. Utilizzando gli attributi per definire questi valori, è possibile utilizzare gli stessi libri di ricette per ogni stack e sostituire semplicemente gli attributi appropriati.

  • I valori sensibili, come per esempio le password o le chiavi segrete.

    Inserire espliciti valori sensibili nel proprio libro di ricette può aumentare il rischio di esposizione. Al contrario, definire gli attributi con valori fittizi e sostituirli per impostare i valori effettivi. Il modo migliore per sostituire questi attributi è con JSON personalizzati. Per ulteriori informazioni, consulta Utilizzo di un JSON personalizzato.

Per ulteriori informazioni sugli attributi e su come sostituirli, consulta Sostituzione degli attributi.

L'esempio seguente è una parte di un file di attributo di esempio.

... 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 definisce gli attributi utilizzando la seguente sintassi:

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

È possibile anche utilizzare i due punti (:) come segue:

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

Una definizione di attributo presenta i seguenti componenti:

node.

Il prefisso node. è opzionale e in genere omesso, come indicato nell'esempio.

type

Il tipo determina se l'attributo può essere sovrascritto. AWS OpsWorks Gli attributi Stacks utilizzano in genere uno dei seguenti tipi:

  • default è la tipologia più comunemente utilizzata, in quanto consente all'attributo di essere sostituito.

  • normaldefinisce un attributo che sostituisce uno dei valori degli attributi AWS OpsWorks Stacks standard.

Nota

Chef supporta tipi aggiuntivi, che non sono necessari per AWS OpsWorks Stacks ma potrebbero essere utili per il tuo progetto. Per ulteriori informazioni, consulta la sezione relativa alle informazioni sugli attributi.

attribute name

Il nome attributo utilizza la sintassi standard di nodo Chef, [:attribute][:subattribute][...]. È possibile utilizzare qualsiasi nome per gli attributi. Tuttavia, come illustrato in Sostituzione degli attributi, gli attributi personalizzati del libro di ricette vengono uniti nell'oggetto del nodo dell'istanza, assieme agli attributi dalla configurazione dello stack e agli attributi di distribuzione e lo strumento Ohai dello Chef. I nomi di configurazione comunemente utilizzati, come per esempio porta o utente potrebbero comparire in vari libri di ricette.

Per evitare conflitti di nome, la convenzione è di creare nomi di attributo qualificati con almeno due elementi, come indicato nell'esempio. Il primo elemento deve essere unico e in genere è basato su un nome di prodotto, come Apache. È seguito da uno o più sottoattributi che identificano il valore specifico, come per esempio [:user] o [:port]. È possibile utilizzare tutti i sottoattributi appropriati per il progetto.

value

Un attributo può essere impostato per i seguenti tipi di valori:

  • Una stringa, come per esempio default[:apache][:keepalive] = 'Off'.

  • Un numero (senza virgolette), come per esempio default[:apache][:timeout] = 120.

  • Il valore booleano, che può essere true o false (senza virgolette).

  • Un elenco di valori, come per esempio default[:apache][:listen_ports] = [ '80','443' ].

Il file di attributo è un'applicazione Ruby, quindi è possibile anche utilizzare la sintassi del nodo e gli operatori logici per assegnare valori basati su altri attributi. Per ulteriori informazioni su come definire gli attributi, consulta la sezione relativa alle Informazioni sugli attributi. Per esempi di file di attributi funzionanti, consultate i libri di cucina integrati in AWS OpsWorks Stacks all'indirizzo https://github.com/aws/opsworks-cookbooks.