Dela via


Stöd för Azure App Configuration för konfigurationsfiler

Ett vanligt sätt att lagra konfigurationsdata är att använda filer. Om du vill använda Azure App Configuration för att hantera dina konfigurationsdata men för närvarande använder filer behöver du inte ange dina data manuellt. Du kan använda verktyg för att importera konfigurationsfilerna.

Om du planerar att hantera dina data i App Configuration är importåtgärden en engångsmigrering av data. Ett annat alternativ är att fortsätta att hantera dina konfigurationsdata i filer och importera filerna återkommande som en del av processen för kontinuerlig integrering och kontinuerlig leverans (CI/CD). Det här fallet uppstår när du använder konfiguration som kod.

Två filinnehållsprofiler är tillgängliga när du använder konfigurationsfiler:

  • Standardfilinnehållsprofilen: Det konventionella konfigurationsfilschemat
  • KVSet-filinnehållsprofilen: Ett schema som innehåller alla nyckelvärdesegenskaper för appkonfiguration

I den här artikeln beskrivs båda filinnehållsprofilerna. Den innehåller också exempel på hur du importerar och exporterar konfigurationsfiler. Exemplen använder Azure CLI, men begreppen i den här artikeln gäller även för andra importmetoder för appkonfiguration.

Filinnehållsprofil: standard

I Programkonfigurationsverktyg är standardfilinnehållsprofilen det konventionella konfigurationsfilschemat som används av befintliga programmeringsramverk och system. Den här profilen används i importverktyg för App Configuration, till exempel Azure-portalen, Azure CLI, importaktiviteten för Azure App Configuration i Azure Pipelines och GitHub Actions. Appkonfiguration stöder filformaten JSON, YAML och Properties.

Den här profilen är användbar om du vill använda en fil som återställningskonfiguration för ditt program eller den lokala konfigurationen under utvecklingen. När du importerar konfigurationsfilen anger du hur du vill att data ska omvandlas till nyckelvärden för appkonfiguration och funktionsflaggor.

Följande konfigurationsfil ,appsettings.json, innehåller ett exempel på standardfilens innehållsprofil. Den här filen innehåller en konfigurationsinställning och en funktionsflagga.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "feature_management": {
        "feature_flags": [
            {
                "id": "Beta",
                "enabled": false
            }
        ]
    }
}

Om du vill importera den här filen till App Configuration kör du följande Azure CLI-kommando. Den tillämpar en dev etikett på inställningen och funktionsflaggan och använder ett kolon (:) som avgränsare för att platta ut nyckelnamnet.

az appconfig kv import --label dev --separator : --name <App-Configuration-store-name> --source file --path appsettings.json --format json

Du kan också lägga till följande parameter i föregående kommando: --profile appconfig/default. Parametern är valfri eftersom standardprofilen är appconfig/default.

Azure Key Vault-referenser kräver en viss innehållstyp under importen. Därför behåller du dem i en separat fil, som du ser i följande fil ,keyvault-refs.json:

{
    "Database:ConnectionString": {
        "uri": "https://<Key-Vault-name>.vault.azure.net/secrets/db-secret"
    }  
}

Om du vill importera den här filen kör du följande Azure CLI-kommando. Den tillämpar en test etikett på Key Vault-referensen och använder innehållstypen Key Vault-referens.

az appconfig kv import --label test --content-type "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8" --name <App-Configuration-store-name> --source file --path keyvault-refs.json --format json

Följande tabell visar alla importerade data i appkonfigurationsarkivet:

Tangent Värde Etikett Innehållstyp
.appconfig.featureflag/Beta {"id":"Beta","beskrivning":"","aktiverad": false,"villkor":{"client_filters":[]}} Dev application/vnd.microsoft.appconfig.ff+json; charset=utf-8
Loggning:LogLevel:Standard Varning Dev
Databas:ConnectionString {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Filinnehållsprofil: KVSet

I AppKonfigurationsverktyg är KVSet-filinnehållsprofilen ett filschema som innehåller alla egenskaper för ett nyckelvärde för appkonfiguration. Här ingår nyckelnamnet, dess värde, dess etikett, dess innehållstyp och dess taggar. Eftersom alla egenskaper för ett nyckelvärde finns i filen behöver du inte ange transformeringsregler när du importerar filen.

När du använder KVSet-profilen kan du definiera vanliga nyckelvärden, Key Vault-referenser och funktionsflaggor i en fil. Därför är den här profilen användbar om du vill hantera alla dina appkonfigurationsdata i en fil och importera dem i ett steg.

Filer som använder den här profilen är i JSON-format. För schemaspecifikationen, se KVSet-filschemat.

Följande fil ,appconfigdata.json, baseras på KVSet-filinnehållsprofilen. Den här filen innehåller en funktionsflagga, en Key Vault-referens och ett standardnyckelvärde.

{
  "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://<Key-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": {}
    }
  ]
}

I föregående avsnitt visar ett exempel hur du importerar data till appkonfigurationsarkivet. Du kan exportera dessa data till en fil med hjälp av följande Azure CLI-kommando:

az appconfig kv export --profile appconfig/kvset --label * --name <App-Configuration-store-name> --destination file --path appconfigdata.json --format json 

När du har exporterat filen öppnar du den i en textredigerare och gör följande ändringar:

  • Ange egenskapen för funktionsflaggan Betaenabled till true.
  • Ange egenskapen Logging:LogLevel:Default till Debug.

Om du vill importera den uppdaterade filen till appkonfigurationsarkivet kör du följande CLI-kommando, som innehåller parametern --profile appconfig/kvset . Du behöver inte ange regler för datatransformering, till exempel en avgränsare, etikett eller innehållstyp som du gjorde för standardfilens innehållsprofil. All nödvändig information finns redan i filen.

az appconfig kv import --profile appconfig/kvset --name <App-Configuration-store-name> --source file --path appconfigdata.json --format json

Kommentar

KVSet-filinnehållsprofilen stöds för närvarande i:

Följande tabell visar alla importerade data i appkonfigurationsarkivet:

Tangent Värde Etikett Innehållstyp
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta-funktion","enabled":true,"conditions":{"client_filters":[]}} Dev application/vnd.microsoft.appconfig.ff+json; charset=utf-8
Loggning:LogLevel:Standard Debug Dev
Databas:ConnectionString {"uri":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Nästa steg