supporto della configurazione di app Azure per i file di configurazione
I file sono uno dei modi più comuni per archiviare i dati di configurazione. Per iniziare rapidamente, Configurazione app include strumenti per facilitare l'importazione dei file di configurazione, quindi non è necessario digitare manualmente i dati. Questa operazione è una migrazione monouso dei dati se si prevede di gestire i dati in Configurazione app dopo l'importazione. In altri casi, ad esempio, in cui si adotta la configurazione come codice, è possibile continuare a gestire i dati di configurazione nei file e importarli come parte del processo CI/CD ricorrente. È possibile che uno di questi due scenari si applichi all'utente:
- Il file di configurazione viene mantenuto nel formato precedente. Questo formato è utile se si vuole usare il file come configurazione di fallback per l'applicazione o la configurazione locale durante lo sviluppo. Quando si importa il file di configurazione, specificare la modalità di trasformazione dei dati in Configurazione app valori chiave e flag di funzionalità. Questa opzione è il profilo di contenuto file predefinito in Configurazione app strumenti di importazione, ad esempio il portale, l'interfaccia della riga di comando di Azure, l'attività Importazione pipeline di Azure, GitHub Actions e così via.
- Il file di configurazione viene mantenuto nel formato che contiene tutte le proprietà chiave-valore Configurazione app. Quando si importa il file, non è necessario specificare regole di trasformazione perché tutte le proprietà di un valore chiave sono già presenti nel file. Questa opzione è denominata profilo di contenuto del file KVSet in Configurazione app strumenti di importazione. È utile se si vogliono gestire tutti i dati Configurazione app, inclusi i normali valori chiave, i riferimenti all'insieme di credenziali delle chiavi e i flag di funzionalità, in un unico file e importarli in un unico colpo.
Il resto di questo documento illustra in dettaglio entrambi i profili di contenuto di file e l'uso dell'interfaccia della riga di comando di Azure come esempio. Lo stesso concetto si applica anche ad altri Configurazione app strumenti di importazione.
Profilo contenuto file: impostazione predefinita
Il profilo di contenuto di file predefinito negli strumenti di Configurazione app fa riferimento allo schema di file di configurazione convenzionale ampiamente adottato da framework o sistemi di programmazione esistenti. Configurazione app supporta i formati di file JSON, Yaml o Properties.
L'esempio seguente è un file di configurazione denominato appsettings.json
contenente un'impostazione di configurazione e un flag di funzionalità.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"FeatureManagement": {
"Beta": false
}
}
Eseguire il comando dell'interfaccia della riga di comando seguente per importarlo in Configurazione app con l'etichetta dev
e usare i due punti (:
) come separatore per rendere flat il nome della chiave. Facoltativamente, è possibile aggiungere il parametro "--profile appconfig/default". Viene ignorato nell'esempio perché è il valore predefinito.
az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json
I riferimenti a Key Vault richiedono un tipo di contenuto specifico durante l'importazione, in modo da mantenerli in un file separato. L'esempio seguente è un file denominato keyvault-refs.json
.
{
"Database:ConnectionString": {
"uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
}
}
Eseguire il comando dell'interfaccia della riga di comando seguente per importarlo con l'etichetta test
e il tipo di contenuto di riferimento di Key Vault.
az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <your store name> --source file --path keyvault-refs.json --format json
La tabella seguente mostra tutti i dati importati nell'archivio Configurazione app.
Chiave | valore | Etichetta | Tipo contenuto |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"","enabled": false,"conditions":{"client_filters":[]}} | dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Logging:LogLevel:Default | Avviso | dev | |
Database:ConnectionString | {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8 |
Profilo contenuto file: KVSet
Il profilo del contenuto del file KVSet negli strumenti di Configurazione app fa riferimento a uno schema di file che contiene tutte le proprietà di un valore chiave Configurazione app, tra cui chiave, valore, etichetta, tipo di contenuto e tag. Il file è in formato JSON. Vedere Schema del file KVSet per la specifica dello schema.
L'esempio seguente è un file basato sul profilo di contenuto del file KVSet, denominato , contenente un flag di funzionalità, un riferimento a Key Vault e un normale valore chiave.The following example is a file based on the KVSet file profile, named appconfigdata.json
, containing a feature flag, a Key Vault reference, and a regular key-value.
{
"items": [
{
"key": ".appconfig.featureflag/Beta",
"value": "{\"id\":\"Beta\",\"description\":\"Beta feature\",\"enabled\":true,\"conditions\":{\"client_filters\":[]}}",
"label": "dev",
"content_type": "application/vnd.microsoft.appconfig.ff+json;charset=utf-8",
"tags": {}
},
{
"key": "Database:ConnectionString",
"value": "{\"uri\":\"https://<your-vault-name>.vault.azure.net/secrets/db-secret\"}",
"label": "test",
"content_type": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
"tags": {}
},
{
"key": "Logging:LogLevel:Default",
"value": "Debug",
"label": "dev",
"content_type": null,
"tags": {}
}
]
}
Suggerimento
Se è stato seguito l'esempio nella sezione precedente e sono presenti i dati nell'archivio Configurazione app, è possibile esportarlo in un file usando il comando dell'interfaccia della riga di comando:
az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json
Dopo l'esportazione del file, aggiornare la proprietà del
Beta
flag di funzionalità intrue
e modificare inLogging:LogLevel:Default
Debug
.enabled
Eseguire il comando dell'interfaccia della riga di comando seguente con il parametro "--profile appconfig/kvset" per importare il file nell'archivio Configurazione app. Non è necessario specificare regole di trasformazione dei dati, ad esempio separatore, etichetta o tipo di contenuto come è stato fatto nella sezione del profilo di contenuto file predefinito perché tutte le informazioni sono già presenti nel file.
az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json
Nota
Il profilo di contenuto del file KVSet è attualmente supportato in
- Interfaccia della riga di comando di Azure versione 2.30.0 o successiva
- app Azure'attività di importazione configurazione versione 10.0.0 o successiva
- Portale di Azure
La tabella seguente mostra tutti i dati importati nell'archivio Configurazione app.
Chiave | valore | Etichetta | Tipo contenuto |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} | dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Logging:LogLevel:Default | Debug | dev | |
Database:ConnectionString | {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8 |