Azure App Configuration ondersteuning voor configuratiebestanden

Bestanden zijn een van de meest voorkomende manieren om configuratiegegevens op te slaan. Om u te helpen snel aan de slag te gaan, beschikt App Configuration over hulpprogramma's die u helpen bij het importeren van uw configuratiebestanden, zodat u uw gegevens niet handmatig hoeft te typen. 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 doorgaan met het beheren van uw configuratiegegevens in bestanden en deze te importeren als onderdeel van uw CI/CD-proces. Mogelijk is een van deze twee scenario's op u van toepassing:

  • 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 App Configuration sleutelwaarden. Deze optie is het standaardbestandsinhoudsprofiel in App Configuration hulpprogramma's voor importeren, zoals portal, Azure CLI, Azure Pipeline Push-taak, GitHub Actions, enzovoort.
  • U behoudt het configuratiebestand in de indeling die alle eigenschappen App Configuration sleutel-waarde 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 heet KVSet-bestandsinhoudsprofiel in App Configuration hulpprogramma's voor importeren. Het is handig als u al uw App Configuration gegevens, inclusief reguliere sleutelwaarden, Key Vault verwijzingen en functievlagmen, in één bestand wilt beheren en ze in één klap wilt importeren.

In de rest van dit document worden beide bestandsinhoudsprofielen in detail besproken en wordt Azure CLI als voorbeeld gebruikt. Hetzelfde concept geldt ook voor andere App Configuration het importeren van hulpprogramma's.

Bestandsinhoudsprofiel: standaard

Het standaardbestandsinhoudsprofiel in App Configuration hulpprogramma's verwijst naar het conventionele configuratiebestandsschema dat op grote schaal wordt gebruikt door bestaande programmeerframeworks of -systemen. App Configuration ondersteunt de bestandsindelingen JSON, Yaml of Properties.

Het volgende voorbeeld is een configuratiebestand met de naam appsettings.json met éé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. Dit 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 verwijzingsinhoudstype.

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":[]}} ontwikkelaar application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logboekregistratie:LogLevel:Standaard Waarschuwing ontwikkelaar
Database:ConnectionString {"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, waaronder sleutel, waarde, label, inhoudstype en tags. Het bestand heeft de JSON-indeling. Zie KVSet-bestandsschema voor de schemaspecificatie.

Het volgende voorbeeld is een bestand dat is gebaseerd op het KVSet-bestandsinhoudsprofiel met de naam appconfigdata.json, dat een functievlag, een Key Vault verwijzing en een normale sleutelwaarde bevat.

{
  "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 zijn 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 functievlag enabled bij naar true en wijzigt u de Logging:LogLevel:Default in Debug.

Voer de volgende CLI-opdracht uit met de parameter '--profile appconfig/kvset' om het bestand te importeren in uw App Configuration store. U hoeft geen regels voor gegevenstransformatie op te geven, zoals scheidingsteken, label of inhoudstype, zoals in de standaardsectie bestandsinhoudsprofiel, omdat alle gegevens al in het bestand staan.

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

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":"Bètafunctie","enabled":true,"conditions":{"client_filters":[]}} ontwikkelaar application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logboekregistratie:LogLevel:Standaard Fouten opsporen ontwikkelaar
Database:ConnectionString {"uri":"https://< your-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Volgende stappen