Utilizzo di un JSON personalizzato - 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à.

Utilizzo di un JSON personalizzato

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 AWS Support Team su AWS re:post o tramite Premium AWS Support.

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

Puoi specificare un JSON personalizzato nelle seguenti situazioni:

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

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

AWS 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 e Log di Chef.

/var/lib/aws/opsworks/chef/hostname.json

Nei percorsi precedenti, run-ID è un ID univoco che AWS OpsWorks Stacks assegna a ciascuna esecuzione di Chef su un'istanza e 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).

  2. 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 AWS OpsWorks Stacks per specificare JSON personalizzato per una distribuzione, nella pagina Deploy App, scegli Avanzato. Digitare il JSON personalizzato nella casella Custom Chef JSON (JSON Chef personalizzato) e scegliere Save (Salva).

Per utilizzare la console AWS 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, consulta Modifica della configurazione di un livello OpsWorks e Distribuzione di app.

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. AWS OpsWorks Stacks aggiunge tali dati all'istanza e le ricette possono recuperarli utilizzando la sintassi standard di Chefnode.

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 o AWS SDK for Rubyscaricare i dati dal bucket Amazon S3 sulla tua istanza.