Delen via


Azure-app configuratieondersteuning voor configuratiebestanden

Een veelgebruikte manier om configuratiegegevens op te slaan, is door bestanden te gebruiken. Als u Azure App Configuration wilt gebruiken om uw configuratiegegevens te beheren, maar momenteel bestanden gebruikt, hoeft u uw gegevens niet handmatig in te voeren. U kunt hulpprogramma's gebruiken om uw configuratiebestanden te importeren.

Als u van plan bent om uw gegevens in App Configuration te beheren, is de importbewerking een eenmalige gegevensmigratie. Een andere optie is om uw configuratiegegevens in bestanden te blijven beheren en de bestanden herhaaldelijk te importeren als onderdeel van uw CI/CD-proces (continue integratie en continue levering). Dit geval treedt op wanneer u configuratie als code gaat gebruiken.

Er zijn twee bestandsinhoudsprofielen beschikbaar wanneer u configuratiebestanden gebruikt:

  • Het standaardbestandsinhoudsprofiel: het conventionele configuratiebestandsschema
  • Het KVSet-bestandsinhoudsprofiel: een schema dat alle eigenschappen van app-configuratiesleutelwaarden bevat

In dit artikel worden beide bestandsinhoudsprofielen besproken. Het bevat ook voorbeelden van het importeren en exporteren van configuratiebestanden. In de voorbeelden wordt de Azure CLI gebruikt, maar de concepten in dit artikel zijn ook van toepassing op andere importmethoden voor App Configuration.

Profiel voor bestandsinhoud: standaard

In App Configuration-hulpprogramma's is het standaardbestandsprofiel het conventionele configuratiebestandsschema dat algemeen wordt gebruikt door bestaande programmeerframeworks en systemen. Dit profiel wordt gebruikt in hulpprogramma's voor het importeren van App Configuration, zoals Azure Portal, De Azure CLI, de Azure App Configuration Import-taak in Azure Pipelines en GitHub Actions. App Configuration biedt ondersteuning voor JSON-, YAML- en Eigenschappen-bestandsindelingen.

Dit profiel is handig als u een 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 en functievlagmen van App Configuration.

Het volgende configuratiebestand, appsettings.json, bevat een voorbeeld van het standaardbestandsinhoudsprofiel. Dit bestand bevat één configuratie-instelling en één functievlag.

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

Voer de volgende Azure CLI-opdracht uit om dit bestand te importeren in App Configuration. Er wordt een dev label toegepast op de instelling en de functievlag en er wordt een dubbele punt (:) gebruikt als scheidingsteken om de sleutelnaam plat te maken.

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

U kunt eventueel de volgende parameter toevoegen aan de voorgaande opdracht: --profile appconfig/default. De parameter is optioneel, omdat het standaardprofiel is appconfig/default.

Azure Key Vault-verwijzingen vereisen een bepaald inhoudstype tijdens het importeren. Als gevolg hiervan houdt u ze in een afzonderlijk bestand, zoals wordt weergegeven in het volgende bestand, keyvault-refs.json:

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

Voer de volgende Azure CLI-opdracht uit om dit bestand te importeren. Er wordt een test label toegepast op de Key Vault-verwijzing en het key Vault-referentie-inhoudstype wordt gebruikt.

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

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:ConnectionString {"URI":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Profiel voor bestandsinhoud: KVSet

In App Configuration-hulpprogramma's is het KVSet-bestandsinhoudsprofiel een bestandsschema dat alle eigenschappen van een App Configuration-sleutelwaarde bevat. Opgenomen zijn de sleutelnaam, de waarde, het label, het inhoudstype en de tags. Omdat alle eigenschappen van een sleutelwaarde zich in het bestand bevinden, hoeft u geen transformatieregels op te geven wanneer u het bestand importeert.

Wanneer u het KVSet-profiel gebruikt, kunt u reguliere sleutelwaarden, Key Vault-verwijzingen en functievlagmen in één bestand definiëren. Als gevolg hiervan is dit profiel handig als u al uw App Configuration-gegevens in één bestand wilt beheren en in één stap wilt importeren.

Bestanden die dit profiel gebruiken, hebben de JSON-indeling. Zie het KVSet-bestandsschema voor de schemaspecificatie.

Het volgende bestand, appconfigdata.json, is gebaseerd op het KVSet-bestandsinhoudsprofiel. Dit bestand bevat een functievlag, een Key Vault-verwijzing en een standaardsleutelwaarde.

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

In de vorige sectie ziet u in een voorbeeld hoe u gegevens importeert in uw App Configuration-archief. U kunt die gegevens exporteren naar een bestand met behulp van de volgende Azure CLI-opdracht:

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

Nadat u het bestand hebt geëxporteerd, opent u het in een teksteditor en voert u de volgende wijzigingen aan:

  • Stel de Beta eigenschap functievlag enabled in op true.
  • Stel de eigenschap Logging:LogLevel:Default in op Debug.

Als u het bijgewerkte bestand wilt importeren in uw App Configuration-archief, voert u de volgende CLI-opdracht uit, die de --profile appconfig/kvset parameter bevat. U hoeft geen regels voor gegevenstransformatie op te geven, zoals een scheidingsteken, label of inhoudstype, zoals u hebt gedaan voor het standaardbestandsinhoudsprofiel. Alle benodigde informatie bevindt zich al in het bestand.

az appconfig kv import --profile appconfig/kvset --name <App-Configuration-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èta-functie","enabled":true,"conditions":{"client_filters":[]}} Dev application/vnd.microsoft.appconfig.ff+json; charset=utf-8
Logboekregistratie:LogLevel:Default Fouten opsporen Dev
Database:ConnectionString {"URI":"https://<Key-Vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8

Volgende stappen