Chiavi e valori
Configurazione app di Azure archivia i dati di configurazione come valori chiave. I valori chiave sono una rappresentazione semplice e flessibile delle impostazioni dell'applicazione usate dagli sviluppatori.
Chiavi
Le chiavi fungono da identificatori per i valori chiave e vengono usate per archiviare e recuperare i valori corrispondenti. In genere le chiavi vengono organizzate in uno spazio dei nomi gerarchico usando un delimitatore di caratteri, ad esempio /
o :
. Usare una convenzione più adatta all'applicazione. Configurazione app tratta le chiavi come un insieme. Non analizza le chiavi per individuare come sono strutturati i relativi nomi, né applica alcuna regola.
Ecco un esempio di nomi di chiave strutturati in una gerarchia basata sui servizi componenti:
AppName:Service1:ApiEndpoint
AppName:Service2:ApiEndpoint
L'uso dei dati di configurazione all'interno dei framework dell'applicazione può determinare schemi di denominazione specifici per i valori chiave. Ad esempio, il framework Spring Cloud di Java definisce Environment
le risorse che forniscono impostazioni a un'applicazione Spring. Queste risorse sono parametrizzate dalle variabili che includono il nome e il profilodell'applicazione. Le chiavi per Spring Cloud relative ai dati di configurazione iniziano in genere con questi due elementi, separati da un delimitatore.
Le chiavi archiviate in Configurazione sono stringhe basate su Unicode con distinzione tra maiuscole e minuscole. Le chiavi app1 e App1 sono distinte in un archivio di Configurazione app. Tenere presente questo aspetto quando si usano le impostazioni di configurazione all'interno di un'applicazione, perché alcuni framework gestiscono le chiavi di configurazione senza fare distinzione tra maiuscole e minuscole. Non è consigliabile usare il caso per distinguere le chiavi.
È possibile usare qualsiasi carattere Unicode nei nomi delle chiavi, ad eccezione di %
. Un nome di chiave non può essere .
o ..
. È previsto un limite di dimensioni combinate di 10 KB per un valore chiave.There's a combined size limit of 10 KB on a key-value. Questo limite include tutti i caratteri della chiave, il relativo valore e tutti gli attributi facoltativi associati. Entro questo limite è possibile avere molti livelli gerarchici per le chiavi.
Progettare gli spazi dei nomi delle chiavi
Per i dati di configurazione vengono usati due approcci generali per la denominazione delle chiavi: flat o gerarchico. Questi metodi sono simili dal punto di vista dell'utilizzo dell'applicazione, ma la denominazione gerarchica offre molti vantaggi:
- Più facile da leggere. Delimitatori in una funzione di nome chiave gerarchica come spazi in una frase. fornendo inoltre interruzioni naturali tra le parole.
- Più facile da gestire. Una gerarchia di nomi di chiavi rappresenta gruppi logici di dati di configurazione.
- Più facile da usare. È più semplice scrivere una query che controlla la presenza di criteri nelle chiavi di una struttura gerarchica e recupera solo una parte dei dati di configurazione. Molti framework di programmazione più recenti includono anche il supporto nativo per i dati di configurazione gerarchici in modo che l'applicazione possa usare set di configurazione specifici.
È possibile organizzare le chiavi gerarchicamente in Configurazione app in molti modi. Queste chiavi possono essere considerate come URI. Ogni chiave gerarchica è un percorso di risorsa composto da uno o più componenti, uniti da delimitatori. Scegliere il carattere da usare come delimitatore in base ai requisiti dell'applicazione, del linguaggio di programmazione o del framework. Usare più delimitatori per chiavi diverse in Configurazione app.
Chiavi di etichetta
Le coppie chiave-valore di Configurazione app possono facoltativamente avere un attributo label. Le etichette vengono usate per differenziare le coppie chiave-valore con la stessa chiave. Una chiave app1 con le etichette A e B corrisponde a due chiavi distinte in un archivio di Configurazione app. Per impostazione predefinita, un valore chiave non ha alcuna etichetta. Per fare riferimento in modo esplicito a un valore chiave senza un'etichetta, usare \0
(URL codificato come %00
).
L'etichetta fornisce un modo pratico per creare varianti di una chiave. Un uso comune delle etichette consiste nello specificare più ambienti per la stessa chiave:
Key = AppName:DbEndpoint & Label = Test
Key = AppName:DbEndpoint & Label = Staging
Key = AppName:DbEndpoint & Label = Production
Valori chiave versione
Usare le etichette come modo per creare più versioni di un valore chiave. È ad esempio possibile immettere un numero di versione dell'applicazione o un ID commit di Git nelle etichette per identificare le coppie chiave-valore associate a una particolare build software.
Nota
Se si stanno cercando versioni delle modifiche, Configurazione app mantiene automaticamente tutte le modifiche di un valore chiave che si è verificato nell'ultimo periodo di tempo. Per altre informazioni, vedere Snapshot temporizzato.
Eseguire query sui valori chiave
Ogni coppia chiave-valore viene identificata in modo univoco dalla chiave e da un'etichetta che può essere \0
. È possibile eseguire una query su un archivio Configurazione app per i valori chiave specificando un modello. L'archivio Configurazione app restituisce tutti i valori chiave corrispondenti al modello, inclusi i valori e gli attributi corrispondenti. Usare i criteri delle chiavi seguenti nelle chiamate dell'API REST a Configurazione app:
Chiave | Descrizione |
---|---|
key è omesso oppure key=* |
Corrisponde a tutte le chiavi. |
key=abc |
Corrisponde esattamente al nome abc della chiave. |
key=abc* |
Trova la corrispondenza con i nomi delle chiavi che iniziano con abc . |
key=abc,xyz |
Trova la corrispondenza con i nomi delle chiavi abc o xyz . Limitato a cinque volumi condivisi cluster. |
È anche possibile includere i criteri delle etichette seguenti:
Etichetta | Descrizione |
---|---|
label è omesso oppure label=* |
Trova la corrispondenza con qualsiasi etichetta, che include \0 . |
label=%00 |
Corrisponde all'etichetta \0 . |
label=1.0.0 |
Corrisponde esattamente all'etichetta 1.0.0 . |
label=1.0.* |
Trova le etichette che iniziano con 1.0. . |
label=%00,1.0.0 |
Trova la corrispondenza con etichette \0 o 1.0.0 , con un limite di cinque volumi condivisi cluster. |
Nota
*
, ,
e \
sono caratteri riservati nelle query. Se un carattere riservato viene usato nei nomi o nelle etichette delle chiavi, è necessario eseguirne l'escape usando \{Reserved Character}
nelle query.
Valori
Anche i valori assegnati alle chiavi sono stringhe Unicode. Per i valori è possibile usare tutti i caratteri Unicode.
Usare il tipo di contenuto
Ogni valore chiave in Configurazione app ha un attributo del tipo di contenuto. Facoltativamente, è possibile usare questo attributo per archiviare informazioni sul tipo di valore in un valore chiave che consente all'applicazione di elaborarla correttamente. È possibile usare qualsiasi formato per il tipo di contenuto. Configurazione app usa tipi multimediali (noti anche come tipi MIME) per tipi di dati predefiniti, ad esempio flag di funzionalità, riferimenti Key Vault e valori chiave JSON.