Configurazione app di Azure supporto 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 dei dati una tantum 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 chiave-valori. 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à push di Azure Pipeline, GitHub Actions e così via.
  • Il file di configurazione viene mantenuto nel formato contenente tutte le proprietà Configurazione app chiave-valore. 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-valore, i riferimenti Key Vault 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 dei file e userà l'interfaccia della riga di comando di Azure come esempio. Lo stesso concetto si applica anche ad altri Configurazione app l'importazione di strumenti.

Profilo contenuto file: impostazione predefinita

Il profilo di contenuto file predefinito negli strumenti di Configurazione app fa riferimento allo schema dei file di configurazione convenzionale ampiamente adottato da framework di programmazione o sistemi esistenti. Configurazione app supporta formati di file JSON, Yaml o Proprietà.

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

Key Vault riferimenti 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 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 illustra tutti i dati importati nell'archivio Configurazione app.

Chiave Valore Etichetta Tipo di 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 di contenuto del file KVSet negli strumenti di Configurazione app fa riferimento a uno schema di file che contiene tutte le proprietà di un Configurazione app chiave-valore, inclusi chiave, valore, etichetta, tipo di contenuto e tag. Il file è in formato JSON. Per la specifica dello schema dello schema, vedere Schema di file KVSet .

L'esempio seguente è un file basato sul profilo di contenuto del file KVSet, denominato , contenente un flag di funzionalità, un riferimento Key Vault e un normale valore chiave.The following example is a file based on the KVSet file content 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 si hanno i dati nell'archivio Configurazione app, è possibile esportarli 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à in true e impostare su Logging:LogLevel:DefaultDebug.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

La tabella seguente illustra tutti i dati importati nell'archivio Configurazione app.

Chiave Valore Etichetta Tipo di 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 Eseguire il 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

Passaggi successivi