Condividi tramite


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.When you import the configuration file, specify how you want the data transformed to Configurazione app key-values. Questa opzione è il profilo di contenuto file predefinito in Configurazione app l'importazione di strumenti come 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 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 usa l'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 Content type
.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:Connessione ionString {"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à in true e modificare in Logging: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

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

Chiave valore Etichetta Content type
.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:Connessione ionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Passaggi successivi