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 funktionsflagganenabled
tilltrue
och ändrarLogging:LogLevel:Default
tillDebug
.
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
- Azure CLI version 2.30.0 eller senare
- Azure App Configuration Import Task version 10.0.0 eller senare
- Azure Portal
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 |