Condividi tramite


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 capire come i nomi siano strutturati né impone alcuna regola su di essi.

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ò imporre schemi di denominazione specifici per i valori chiave. Ad esempio, il framework Spring Cloud di Java definisce le risorse Environment che forniscono impostazioni a un'applicazione Spring. Queste risorse sono parametrizzate dalle variabili che includono il nome dell'applicazione e il profilo. 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 App Configuration sono stringhe basate su Unicode con distinzione tra maiuscole e minuscole. Le chiavi App1 e App1 sono distinte in un archivio di Configurazione dell'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. Si sconsiglia di utilizzare maiuscole e minuscole per differenziare le chiavi.

È possibile usare qualsiasi carattere Unicode nei nomi delle chiavi, ad eccezione di %. Un nome chiave non può essere . o ... Esiste un limite di dimensioni combinato di 10 KB per un valore chiave. Questo limite include tutti i caratteri nella chiave, il relativo valore e tutti gli attributi facoltativi associati. Entro questo limite, è possibile avere molti livelli gerarchici per le chiavi.

Progettare i namespace delle chiavi

Per i dati di configurazione vengono usati due approcci generali per la denominazione delle chiavi: flat o gerarchico. Questi approcci sono simili dal punto di vista dell'utilizzo dell'applicazione, ma la denominazione gerarchica offre diversi vantaggi:

  • Più facile da leggere. I delimitatori in un nome di chiave gerarchica fungono da spazi in una frase. Forniscono anche interruzioni naturali tra le parole.
  • Più facile da gestire. Una gerarchia dei nomi di chiave rappresenta gruppi logici di dati di configurazione.
  • Più facile da usare. È più semplice scrivere una query che confronta il pattern delle chiavi in una struttura gerarchica e recupera solo una parte dei dati di configurazione. Inoltre, molti framework di programmazione più recenti hanno supporto nativo per i dati di configurazione gerarchici in modo che l'applicazione possa usare set di configurazione specifici.

È possibile organizzare le chiavi in Configurazione app in modo gerarchico in molti modi. Considerate tali chiavi 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 alle esigenze 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 etichetta. Le etichette vengono utilizzate per distinguere le coppie chiave-valore che hanno 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 offre un modo pratico per creare varianti di una chiave. Un uso comune delle etichette consiste nel specificare più ambienti per la stessa chiave:

    Key = AppName:DbEndpoint & Label = Test
    Key = AppName:DbEndpoint & Label = Staging
    Key = AppName:DbEndpoint & Label = Production

Valori chiave di 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 Git nelle etichette per identificare i valori chiave associati a una compilazione software specifica.

Annotazioni

Se si stanno cercando versioni delle modifiche, Configurazione app conserva automaticamente tutte le modifiche di una coppia chiave-valore che si sono verificate in un dato periodo. Per altre informazioni, vedere l'articolo relativo allo snapshot temporizzato.

Eseguire query su coppie chiave-valore

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 di Configurazione app per i valori chiave specificando un modello. L'archivio di Configurazione app restituisce tutti i valori chiave che corrispondono al modello, inclusi i valori e gli attributi corrispondenti. Usare i pattern chiave seguenti nelle chiamate API REST a Configurazione delle app:

Chiave Descrizione
key viene omesso o key=* Corrisponde a tutte le chiavi.
key=abc Trova esattamente il nome abc della chiave.
key=abc* Trova la corrispondenza con i nomi delle chiavi che iniziano con abc.
key=abc,xyz Corrisponde ai nomi delle chiavi abc o xyz. Limitato a cinque file CSV.

È anche possibile includere i modelli di etichetta seguenti:

Etichetta Descrizione
label viene omesso o label=* Corrisponde a qualsiasi etichetta, incluso \0.
label=%00 Corrisponde all'etichetta \0.
label=1.0.0 Corrisponde esattamente all'etichetta 1.0.0 .
label=1.0.* Corrisponde alle etichette che iniziano con 1.0..
label=%00,1.0.0 Corrisponde alle etichette \0 o 1.0.0, con il limite di cinque CSV.

Annotazioni

*, ,e \ sono caratteri riservati nelle query. Se un carattere riservato viene usato nei nomi delle chiavi o nelle etichette, è 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 di supporti (noti anche come tipi MIME) per tipi di dati predefiniti, ad esempio flag di funzionalità, riferimenti a Key Vault e coppie chiave-valore JSON.

Passaggi successivi