Dela via


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

Filer är ett av de vanligaste sätten att lagra konfigurationsdata på. För att hjälpa dig att börja snabbt har App Configuration verktyg som hjälper dig att importera dina konfigurationsfiler, så att du inte behöver skriva in dina data manuellt. Den här åtgärden är en engångsmigrering av data om du planerar att hantera dina data i App Configuration när du har importerat dem. I vissa andra fall, till exempel när du använder konfiguration som kod, kan du fortsätta att hantera dina konfigurationsdata i filer och importera dem som en del av CI/CD-processen återkommande. Du kan hitta något av följande två scenarier som gäller för dig:

  • Du har konfigurationsfilen i det format som du hade tidigare. Det här formatet är användbart om du vill använda filen 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. Det här alternativet är standardfilinnehållsprofilen i importverktyg för App Configuration, till exempel portalen, Azure CLI, importaktiviteten för Azure Pipeline, GitHub Actions osv.
  • Du har konfigurationsfilen i det format som innehåller alla nyckelvärdesegenskaper för appkonfiguration. När du importerar filen behöver du inte ange några transformeringsregler eftersom alla egenskaper för ett nyckelvärde redan finns i filen. Det här alternativet kallas KVSet-filinnehållsprofil i importverktygen för App Configuration. Det är användbart om du vill hantera alla dina appkonfigurationsdata, inklusive vanliga nyckelvärden, Key Vault-referenser och funktionsflaggor, i en fil och importera dem i en bild.

Resten av det här dokumentet beskriver båda filinnehållsprofilerna i detalj och använder Azure CLI som exempel. Samma begrepp gäller även för andra importverktyg för appkonfiguration.

Filinnehållsprofil: standard

Standardfilinnehållsprofilen i appkonfigurationsverktyg refererar till det konventionella konfigurationsfilschemat som används av befintliga programmeringsramverk eller system. AppKonfiguration har stöd för JSON-, Yaml- eller Properties-filformat.

Följande exempel är en konfigurationsfil med namnet appsettings.json som innehåller en konfigurationsinställning och en funktionsflagga.

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "FeatureManagement": {
        "Beta": false
    }
}

Kör följande CLI-kommando för att importera det till App Configuration med dev etiketten och använd kolonet (:) som avgränsare för att platta ut nyckelnamnet. Du kan också lägga till parametern "--profile appconfig/default". Det hoppas över i exemplet eftersom det är standardvärdet.

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

Key Vault-referenser kräver en viss innehållstyp under importen, så du behåller dem i en separat fil. Följande exempel är en fil med namnet keyvault-refs.json.

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

Kör följande CLI-kommando för att importera det med test etiketten och key vault-referensinnehållstypen.

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

I följande tabell visas alla importerade data i appkonfigurationsarkivet.

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

Filinnehållsprofil: KVSet

KVSet-filinnehållsprofilen i appkonfigurationsverktyg refererar till ett filschema som innehåller alla egenskaper för ett nyckelvärde för appkonfiguration, inklusive nyckel, värde, etikett, innehållstyp och taggar. Filen är i JSON-format. Se KVSet-filschemat för schemaspecifikationen.

Följande exempel är en fil som baseras på KVSet-filinnehållsprofilen med namnet appconfigdata.json, som innehåller en funktionsflagga, en Key Vault-referens och ett vanligt nyckelvä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://<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": {}
    }
  ]
}

Dricks

Om du följde exemplet i föregående avsnitt och har data i appkonfigurationsarkivet kan du exportera dem till en fil med hjälp av CLI-kommandot:

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

När filen har exporterats uppdaterar Beta du egenskapen för funktionsflaggan enabled till true och ändrar Logging:LogLevel:Default till Debug.

Kör följande CLI-kommando med parametern "--profile appconfig/kvset" för att importera filen till appkonfigurationsarkivet. Du behöver inte ange några regler för datatransformering, till exempel avgränsare, etikett eller innehållstyp som du gjorde i standardavsnittet för filinnehållsprofil eftersom all information redan finns i filen.

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

Kommentar

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

I följande tabell visas alla importerade data i appkonfigurationsarkivet.

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

Nästa steg