Precedenza degli attributi - 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à.

Precedenza degli attributi

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.

Se un attributo è definito in modo univoco, Chef lo incorpora nell'oggetto nodo. Tuttavia, qualsiasi origine di attributo può definire qualsiasi attributo. Pertanto lo stesso attributo può avere più definizioni con valori diversi. Ad esempio, il libro di ricette apache2 predefinito definisce node[:apache][:keepalive], ma puoi anche definire tale attributo in formato JSON personalizzato o in un libro di ricette personalizzato. Se un attributo ha più definizioni, queste vengono valutate nell'ordine descritto più avanti; l'oggetto nodo riceve la definizione caratterizzata dalla precedenza massima.

Un attributo viene definita nel seguente modo:

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

Se un attributo ha più definizioni, il tipo determina quale definizione ha la precedenza e tale definizione viene incorporata nell'oggetto nodo. AWS OpsWorks Stacks utilizza i seguenti tipi di attributi:

  • default: questo è il tipo più comune e significa essenzialmente «usa questo valore se l'attributo non è già stato definito». Se tutte le definizioni di un attributo sono di tipo default, la prima definizione nell'ordine di valutazione avrà la priorità, mentre i valori successivi verranno ignorati. Nota che AWS OpsWorks Stacks imposta tutte le definizioni degli attributi di configurazione e distribuzione dello stack su type. default

  • normal: gli attributi di questo tipo sostituiscono tutti default normal gli attributi definiti in precedenza nell'ordine di valutazione. Ad esempio, se il primo attributo proviene da un libro di ricette predefinito ed è associato al tipo default, mentre il secondo attributo è un attributo definito dall'utente ed è associato al tipo normal, la seconda definizione avrà la precedenza.

  • set —Questo è un tipo obsoleto che potresti vedere nei vecchi libri di cucina. È stato sostituito da normal, che è caratterizzato dalla stessa priorità.

Chef supporta vari tipi di attributo aggiuntivi, tra cui il tipo automatic, che ha la precedenza su tutte le altre definizioni di attributo. Le definizioni di attributo generate dallo strumento Ohai di Chef sono tutte di tipo automatic. Sono pertanto di sola lettura. Di solito questo non è un problema, perché non c'è motivo di sostituirli e sono distinti dagli attributi di Stacks. AWS OpsWorks Tuttavia, è consigliabile prestare particolare attenzione quando gli attributi personalizzati del libro di ricette vengono rinominati affinché siano effettivamente diversi dagli attributi Ohai. Per ulteriori informazioni, consulta la sezione relativa alle informazioni sugli attributi.

Nota

Lo strumento Ohai è un eseguibile che puoi eseguire dalla riga di comando. Per elencare gli attributi Ohai di un'istanza, accedi all'istanza ed esegui ohai in una finestra del terminale. Devi considerare il fatto che questo comando genera un output di grandi dimensioni.

Di seguito sono descritti i passaggi che consentono di incorporare le diverse definizioni di attributo nell'oggetto nodo:

  1. Unire gli attributi di configurazione personalizzati dello stack negli attributi di configurazione e distribuzione dello stack.

    Gli attributi JSON personalizzati possono essere impostati per lo stack o per una distribuzione specifica. Occupano sempre la prima posizione nell'ordine di valutazione in quanto sono di tipo normal. Se anche uno o più attributi di configurazione dello stack vengono definiti in formato JSON personalizzato, i valori JSON personalizzati hanno la precedenza. In caso contrario, AWS OpsWorks Stacks si limita a incorporare gli attributi JSON personalizzati nella configurazione dello stack.

  2. Unire gli attributi JSON di distribuzione personalizzati negli attributi di configurazione e distribuzione dello stack.

    Gli attributi JSON di distribuzione personalizzati sono di tipo normal e pertanto hanno la precedenza rispetto agli attributi JSON predefiniti e personalizzati di configurazione dello stack e rispetto agli attributi JSON di distribuzione predefiniti.

  3. Unire gli attributi di configurazione e implementazione dello stack nell'oggetto nodo dell'istanza.

  4. Unire gli attributi predefiniti del libro di ricette dell'istanza nell'oggetto nodo.

    Gli attributi predefiniti del libro di ricette sono tutti di tipo default. Se uno o più attributi incorporati del libro di cucina sono definiti anche negli attributi di configurazione e distribuzione dello stack, in genere perché li hai definiti con un codice JSON personalizzato, le definizioni di configurazione dello stack hanno la precedenza sulle definizioni integrate del libro di cucina. Tutti gli altri attributi predefiniti dei libri di ricette vengono semplicemente incorporati nell'oggetto nodo.

  5. Unire gli attributi personalizzati del libro di ricette dell'istanza nell'oggetto nodo.

    Gli attributi personalizzati dei libri di ricette sono in genere di tipo normal o default. Gli attributi univoci sono incorporati nell'oggetto nodo. Se nei passaggi 1—3 sono definiti anche degli attributi personalizzati del libro di cucina (in genere perché li hai definiti con JSON personalizzato), la precedenza dipende dal tipo di attributo del libro di cucina personalizzato:

    • Gli attributi definiti nei passaggi 1—3 hanno la precedenza sugli attributi personalizzati del libro di cucina. default

    • normalGli attributi personalizzati del cookbook hanno la precedenza sulle definizioni dei passaggi 1—3.

Importante

Non utilizzare attributi personalizzati di default del libro di ricette per sostituire gli attributi di configurazione dello stack o gli attributi predefiniti del libro di ricette. Poiché gli attributi personalizzati del libro di ricette vengono valutati per ultimi, gli attributi di tipo default hanno la priorità più bassa e non possono sostituire nulla.