

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

# Utilizzo di un JSON personalizzato
<a name="workingstacks-json"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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).

Diverse azioni OpsWorks Stacks consentono di specificare JSON personalizzato, che OpsWorks Stacks installa sulle istanze e può essere utilizzato dalle ricette.

Puoi specificare un JSON personalizzato nelle seguenti situazioni:
+ Quando crei, aggiorni o cloni uno stack.

  [AWS OpsWorks Stacks installa il codice JSON personalizzato su tutte le istanze per tutti gli eventi del ciclo di vita successivi.](workingcookbook-events.md)
+ Quando esegui un comando di distribuzione o dello stack.

  AWS OpsWorks Stacks passa il codice JSON personalizzato alle istanze solo per quell'evento.

Il JSON personalizzato deve essere rappresentato da, e formattato come, un oggetto JSON valido. Esempio:

```
{
  "att1": "value1",
  "att2": "value2"
  ...
}
```

OpsWorks Stacks archivia JSON personalizzato nelle seguenti posizioni:

Sulle istanze Linux:
+ `/var/chef/runs/run-ID/attribs.json`
+ `/var/chef/runs/run-ID/nodes/hostname.json`

Sulle istanze Windows:
+ `drive:\chef\runs\run-ID\attribs.json`
+ `drive:\chef\runs\run-ID\nodes\hostname.json`

**Nota**  
In Chef 11.10 e versioni precedenti per Linux, il JSON personalizzato è disponibile nel percorso seguente sulle istanze Linux, le istanze Windows non sono disponibili e non vi è alcun file `attribs.json`. I log vengono archiviati nella stessa cartella o directory del JSON. Per ulteriori informazioni sul JSON personalizzato in Chef 11.10 e versioni precedenti per Linux, consulta la pagina relativa alla [sostituzione di attributi con JSON personalizzati](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html) e [Log di Chef](https://docs.aws.amazon.com/opsworks/latest/userguide/troubleshoot-debug-log.html#troubleshoot-debug-log-instance).  
`/var/lib/aws/opsworks/chef/hostname.json`

Nei percorsi precedenti, *run-ID* è un ID univoco che OpsWorks Stacks assegna a ogni esecuzione di Chef su un'istanza ed *hostname* è il nome host dell'istanza.

Per accedere a un JSON personalizzato da ricette di Chef, usa la sintassi `node` di Chef standard.

Supponiamo che desideri definire impostazioni semplici per un'app che vuoi distribuire, ad esempio se l'app è inizialmente visibile e i colori iniziali di primo piano e di sfondo dell'app. Ipotizziamo che tu definisca queste impostazioni di app con un oggetto JSON nel modo seguente: 

```
{
  "state": "visible",
  "colors": {
    "foreground": "light-blue",
    "background": "dark-gray"
  }
}
```

Per dichiarare il JSON personalizzato per uno stack:

1. Nella pagina dello stack scegliere **Stack Settings (Impostazioni stack)**, quindi scegliere **Edit (Modifica)**.

1. Per **Custom Chef JSON (JSON Chef personalizzato)**, digitare l'oggetto JSON e scegliere **Save (Salva)**.

**Nota**  
Puoi dichiarare un JSON personalizzato a livello di distribuzione, livello e stack. Puoi eseguire questa operazione se desideri che alcuni JSON personalizzati siano visibili solo a un singolo livello o una singola distribuzione. Oppure, ad esempio, puoi sostituire temporaneamente il JSON personalizzato dichiarato a livello di stack con il JSON personalizzato dichiarato a livello di livello. Se dichiari un JSON personalizzato su più livelli, il JSON personalizzato dichiarato a livello di distribuzione sostituisce qualsiasi JSON personalizzato dichiarato sia a livello di livello sia di stack. Il JSON personalizzato dichiarato a livello di livello sostituisce qualsiasi JSON personalizzato dichiarato solo a livello di stack.  
****Per utilizzare la console OpsWorks Stacks per specificare JSON personalizzato per una distribuzione, nella pagina Deploy App, scegli Advanced.**** Digitare il JSON personalizzato nella casella **Custom Chef JSON (JSON Chef personalizzato)** e scegliere **Save (Salva)**.  
Per utilizzare la console OpsWorks Stacks per specificare JSON personalizzato per un layer, nella pagina **Livelli, scegli **Impostazioni** per il layer** desiderato. Digitare il JSON personalizzato nella casella **Custom JSON (JSON personalizzato)** e scegliere **Save (Salva)**.  
Per ulteriori informazioni, consultare [Modifica della configurazione di un livello OpsWorks](workinglayers-basics-edit.md) e [Distribuzione di app](workingapps-deploying.md).

Quando esegui un comando di distribuzione o dello stack, le ricette possono recuperare questi valori personalizzati utilizzando una sintassi `node` di Chef standard, che esegue la mappatura direttamente alla gerarchia nell'oggetto JSON personalizzato. Ad esempio, il codice ricetta seguente scrive messaggi nel log di Chef sui valori precedenti del JSON personalizzato:

```
Chef::Log.info("********** The app's initial state is '#{node['state']}' **********")
Chef::Log.info("********** The app's initial foreground color is '#{node['colors']['foreground']}' **********")
Chef::Log.info("********** The app's initial background color is '#{node['colors']['background']}' **********")
```

Questo approccio può essere utile per passare dati alle ricette. OpsWorks Stacks aggiunge tali dati all'istanza e le ricette possono recuperarli utilizzando la sintassi standard di Chef`node`. 

**Nota**  
Il codice JSON personalizzato è limitato a 120 KB. Se hai bisogno di maggiore capacità, ti consigliamo di archiviare alcuni dati su Amazon Simple Storage Service (Amazon S3). Le tue ricette personalizzate possono quindi utilizzare l'[AWS CLI](https://aws.amazon.com/documentation/cli/) o [AWS SDK per Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/)scaricare i dati dal bucket Amazon S3 sulla tua istanza.