Azure-app configuratieondersteuning voor configuratiebestanden
Bestanden zijn een van de meest voorkomende manieren om configuratiegegevens op te slaan. App Configuration biedt hulpprogramma's om u te helpen bij het importeren van uw configuratiebestanden, zodat u uw gegevens niet handmatig hoeft in te voeren. Deze bewerking is een eenmalige gegevensmigratie als u van plan bent om uw gegevens in App Configuration te beheren nadat u ze hebt geïmporteerd. In sommige andere gevallen, bijvoorbeeld wanneer u configuratie als code gebruikt, kunt u uw configuratiegegevens blijven beheren in bestanden en ze importeren als onderdeel van uw CI/CD-proces. Mogelijk is een van deze twee scenario's van toepassing op u:
- U behoudt het configuratiebestand in de indeling die u eerder had. Deze indeling is handig als u het bestand wilt gebruiken als de terugvalconfiguratie voor uw toepassing of de lokale configuratie tijdens de ontwikkeling. Wanneer u het configuratiebestand importeert, geeft u op hoe u de gegevens wilt transformeren naar sleutelwaarden van App Configuration. Deze optie is het standaardprofiel voor bestandsinhoud in Hulpprogramma's voor het importeren van App Configuration, zoals portal, Azure CLI, Azure Pipeline Push-taak, GitHub Actions, enzovoort.
- U behoudt het configuratiebestand in de indeling die alle eigenschappen van de sleutelwaarde van App Configuration bevat. Wanneer u het bestand importeert, hoeft u geen transformatieregels op te geven, omdat alle eigenschappen van een sleutelwaarde al in het bestand aanwezig zijn. Deze optie wordt KVSet-bestandsinhoudsprofiel genoemd in hulpprogramma's voor het importeren van App Configuration. Het is handig als u al uw App Configuration-gegevens wilt beheren, inclusief reguliere sleutelwaarden, Key Vault-verwijzingen en functievlagmen, in één bestand en ze in één shot wilt importeren.
In de rest van dit document worden zowel bestandsinhoudsprofielen in detail besproken als gebruik van Azure CLI als voorbeeld. Hetzelfde concept is ook van toepassing op andere hulpprogramma's voor het importeren van App Configuration.
Profiel voor bestandsinhoud: standaard
Het standaardbestandsinhoudsprofiel in App Configuration-hulpprogramma's verwijst naar het conventionele configuratiebestandsschema dat veel wordt gebruikt door bestaande programmeerframeworks of systemen. App Configuration ondersteunt JSON-, Yaml- of Eigenschappen-bestandsindelingen.
Het volgende voorbeeld is een configuratiebestand met appsettings.json
één configuratie-instelling en één functievlag.
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"FeatureManagement": {
"Beta": false
}
}
Voer de volgende CLI-opdracht uit om deze te importeren in App Configuration met het dev
label en gebruik de dubbele punt (:
) als scheidingsteken om de sleutelnaam plat te maken. U kunt eventueel de parameter '--profile appconfig/default' toevoegen. Deze wordt overgeslagen in het voorbeeld omdat dit de standaardwaarde is.
az appconfig kv import --label dev --separator : --name <your store name> --source file --path appsettings.json --format json
Key Vault-verwijzingen vereisen een bepaald inhoudstype tijdens het importeren, zodat u ze in een afzonderlijk bestand bewaart. Het volgende voorbeeld is een bestand met de naam keyvault-refs.json
.
{
"Database:ConnectionString": {
"uri": "https://<your-vault-name>.vault.azure.net/secrets/db-secret"
}
}
Voer de volgende CLI-opdracht uit om deze te importeren met het test
label en het key vault-verwijzingstype.
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
In de volgende tabel ziet u alle geïmporteerde gegevens in uw App Configuration-archief.
Sleutel | Waarde | Label | Inhoudstype |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} | Dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Logboekregistratie:LogLevel:Default | Waarschuwing | Dev | |
Database:Verbinding maken ionString | {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8 |
Profiel voor bestandsinhoud: KVSet
Het KVSet-bestandsinhoudsprofiel in App Configuration-hulpprogramma's verwijst naar een bestandsschema dat alle eigenschappen van een App Configuration-sleutelwaarde bevat, inclusief sleutel, waarde, label, inhoudstype en tags. Het bestand heeft de JSON-indeling. Zie het KVSet-bestandsschema voor de schemaspecificatie.
Het volgende voorbeeld is een bestand dat is gebaseerd op het KVSet-bestandsinhoudsprofiel met de naam appconfigdata.json
, met een functievlag, een Key Vault-verwijzing en een normale sleutelwaarde.
{
"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": {}
}
]
}
Tip
Als u het voorbeeld in de vorige sectie hebt gevolgd en de gegevens in uw App Configuration-archief hebt opgeslagen, kunt u deze exporteren naar een bestand met behulp van de CLI-opdracht:
az appconfig kv export --profile appconfig/kvset --label * --name <your store name> --destination file --path appconfigdata.json --format json
Nadat het bestand is geëxporteerd, werkt u de eigenschap van de
Beta
functievlagenabled
bij intrue
en wijzigt u deLogging:LogLevel:Default
eigenschap inDebug
.
Voer de volgende CLI-opdracht uit met de parameter '--profile appconfig/kvset' om het bestand te importeren in uw App Configuration-archief. U hoeft geen regels voor gegevenstransformatie op te geven, zoals scheidingsteken, label of inhoudstype, zoals u hebt gedaan in de sectie standaardbestandsinhoudsprofiel, omdat alle informatie al in het bestand staat.
az appconfig kv import --profile appconfig/kvset --name <your store name> --source file --path appconfigdata.json --format json
Notitie
Het KVSet-bestandsinhoudsprofiel wordt momenteel ondersteund in
- Azure CLI versie 2.30.0 of hoger
- Azure-app configuratiepushtaak versie 3.3.0 of hoger
In de volgende tabel ziet u alle geïmporteerde gegevens in uw App Configuration-archief.
Sleutel | Waarde | Label | Inhoudstype |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} | Dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Logboekregistratie:LogLevel:Default | Fouten opsporen | Dev | |
Database:Verbinding maken ionString | {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8 |