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 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à 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 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

Passaggi successivi