Sostituzione di attributi in formato 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à.

Sostituzione di attributi in formato JSON personalizzato

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.

Nota

Poiché AWS OpsWorks Stacks gestisce Chef funziona in modo diverso per gli stack Windows rispetto agli stack Linux, non è possibile utilizzare le tecniche illustrate in questa sezione per gli stack di Windows.

Il modo più semplice per sovrascrivere un attributo AWS OpsWorks Stacks è definirlo in JSON personalizzato, che ha la precedenza sugli attributi di configurazione e distribuzione dello stack, nonché sugli attributi di cookbook integrati e personalizzati. default Per ulteriori informazioni, consulta Precedenza degli attributi.

Importante

È consigliabile sostituire gli attributi di configurazione e distribuzione dello stack prestando particolare attenzione. Ad esempio, la sostituzione degli attributi nello spazio dei nomi opsworks potrebbe interferire con le ricette predefinite. Per ulteriori informazioni, consulta Attributi di configurazione e distribuzione dello stack.

Puoi anche utilizzare il formato JSON personalizzato per definire gli attributi univoci, in genere per passare i dati alle ricette personalizzate. Gli attributi vengono incorporato nell'oggetto nodo e le ricette possono fare riferimento a essi mediante l'utilizzo della sintassi standard del nodo Chef.

Come specificare un formato JSON personalizzato

Per usare il formato JSON personalizzato per sostituire un valore di attributo, devi prima determinare il nome completo dell'attributo. Procederai quindi a creare un oggetto JSON che contiene gli attributi che desideri sostituire, impostati sui valori preferiti. Per comodità, i documenti Attributi di configurazione e distribuzione dello stack: Linux e Attributi dei libri di ricette predefiniti usano gli attributi di configurazione, distribuzione e predefiniti dello stack più comunemente utilizzati, compresi i relativi nomi completi.

Le relazioni padre-figlio dell'oggetto devono corrispondere ai nodi Chef completi appropriati. Supponiamo, ad esempio, che tu voglia modificare i seguenti attributi Apache:

  • Attributo keepalivetimeout, il cui nodo è node[:apache][:keepalivetimeout] e ha il valore predefinito di 3.

  • Attributo logrotate schedule, il cui nodo è node[:apache][:logrotate][:schedule] e ha il valore predefinito di "daily".

Per sostituire gli attributi e impostare i valori rispettivamente su 5 e "weekly", utilizza il seguente formato JSON personalizzato:

{ "apache" : { "keepalivetimeout" : 5, "logrotate" : { "schedule" : "weekly" } } }

Quando specificare un formato JSON personalizzato

Puoi specificare una struttura JSON personalizzata per le attività seguenti:

Per ogni attività, AWS OpsWorks Stacks unisce gli attributi JSON personalizzati con gli attributi di configurazione e distribuzione dello stack e li invia alle istanze, per essere uniti nell'oggetto nodo. Si noti, tuttavia, quanto segue:

  • Se specifichi un formato JSON personalizzato quando crei, cloni o aggiorni uno stack, gli attributi vengono uniti agli attributi di configurazione e distribuzione dello stack per tutti gli eventi del ciclo di vita e per tutti i comandi dello stack successivi.

  • Se specifichi un formato JSON personalizzato per una distribuzione, gli attributi vengono uniti agli attributi di configurazione e distribuzione dello stack solo per l'evento corrispondente.

    Se vuoi utilizzare questi attributi personalizzati per distribuzioni successive, devi specificare di nuovo il formato JSON personalizzato in modo esplicito.

È importante ricordare che gli attributi interessano l'istanza solo quando vengono usati dalle ricette. Se sostituisci un valore di attributo ma nessuna ricetta successiva fa riferimento all'attributo, la modifica non ha alcun effetto. Devi assicurarti che il formato JSON personalizzato venga inviato prima dell'esecuzione delle ricette associate oppure che le ricette appropriate vengano eseguite nuovamente.

Best practice relative al formato JSON personalizzato

Puoi utilizzare JSON personalizzato per sovrascrivere qualsiasi attributo AWS OpsWorks Stacks, ma l'immissione manuale delle informazioni è piuttosto complicata e non è soggetta a alcun tipo di controllo del codice sorgente. Il formato JSON personalizzato è particolarmente indicato nei seguenti scenari:

  • Quando vuoi sostituire solo un numero limitato di attributi e non devi necessariamente utilizzare i libri di ricette personalizzati.

    Grazie al formato JSON personalizzato puoi evitare di configurare e gestire un archivio di libri di ricette per sostituire solo un paio di attributi.

  • In caso di utilizzo di valori sensibili, ad esempio password o chiavi di autenticazione.

    Gli attributi dei libri di ricette vengono archiviati in un archivio e pertanto le informazioni sensibili potrebbero venire compromesse. È pertanto consigliabile definire gli attributi con valori fittizi e utilizzare il formato JSON personalizzato per impostare i valori reali.

  • In caso di utilizzo di valori che possono variare.

    Ad esempio, è consigliabile disporre di uno stack di produzione supportato da stack di sviluppo e gestione temporanea distinti. Supponiamo che questi stack supportino un'applicazione che accetta pagamenti. Se utilizzi il formato JSON personalizzato per specificare l'endpoint di pagamento, puoi specificare un URL di test per lo stack di gestione temporanea. Quando sei pronto a eseguire la migrazione di uno stack aggiornato nello stack di produzione, puoi utilizzare gli stessi libri di ricette e utilizzare il formato JSON personalizzato per impostare l'endpoint di pagamento per l'URL di produzione.

  • In caso di utilizzo di valori specifici per un determinato comando di implementazione o stack.