

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
<a name="workingcookbook-installingcustom-components-attributes"></a>

**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 Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/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](workingcookbook-json-override.md).

Per ulteriori informazioni sugli attributi e su come sostituirli, consulta [Sostituzione degli attributi](workingcookbook-attributes.md). 

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

 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.`
<a name="node"></a>

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

## `type`
<a name="type"></a>

Il tipo determina se l'attributo può essere sovrascritto. 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.
+ `normal`definisce un attributo che sostituisce uno dei valori degli attributi OpsWorks Stacks standard.

**Nota**  
Chef supporta tipi aggiuntivi, che non sono necessari per OpsWorks Stacks ma potrebbero essere utili per il tuo progetto. Per ulteriori informazioni, consulta la sezione relativa alle [informazioni sugli attributi](http://docs.chef.io/attributes.html).

## `attribute name`
<a name="attribute-name"></a>

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](workingcookbook-attributes.md), 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](https://docs.chef.io/ohai.html) 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`
<a name="value"></a>

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](https://docs.chef.io/chef_overview_attributes.html). [Per esempi di file di attributi funzionanti, consulta i libri di cucina integrati in OpsWorks Stacks su opsworks-cookbooks. https://github.com/aws/](https://github.com/aws/opsworks-cookbooks)