Azure App Configuration-Unterstützung für Konfigurationsdateien

Dateien sind eine der häufigsten Möglichkeiten zum Speichern von Konfigurationsdaten. Damit Sie schnell loslegen können, verfügt App Configuration über Tools, die Ihnen beim Importieren Ihrer Konfigurationsdateien helfen sollen, damit Sie ihre Daten nicht manuell eingeben müssen. Dieser Vorgang ist eine einmalige Datenmigration, wenn Sie planen, Ihre Daten nach deren Import in App Configuration zu verwalten. In einigen anderen Fällen, z. B. wenn Sie Konfigurationen als Code übernehmen, können Sie Ihre Konfigurationsdaten weiterhin in Dateien verwalten und diese im Rahmen ihres CI/CD-Prozesses wiederholt importieren. Möglicherweise trifft eins dieser beiden Szenarien auf Sie zu:

  • Sie behalten die Konfigurationsdatei in dem Format, das Sie zuvor hatten. Dieses Format ist hilfreich, wenn Sie die Datei als Fallbackkonfiguration für Ihre Anwendung oder die lokale Konfiguration während der Entwicklung verwenden möchten. Wenn Sie die Konfigurationsdatei importieren, geben Sie an, wie die Daten in Schlüssel-Wert-Paare in App Configuration transformiert werden sollen. Diese Option ist das Standard-Dateiinhaltsprofil (default) in App Configuration-Importtools wie dem Portal, der Azure CLI, der Azure Pipeline Push-Aufgabe, GitHub Actions usw.
  • Sie behalten die Konfigurationsdatei in dem Format, das alle Eigenschaften von Schlüssel-Wert-Paaren von App Configuration enthält. Wenn Sie die Datei importieren, müssen Sie keine Transformationsregeln angeben, da alle Eigenschaften eines Schlüssel-Wert-Paars bereits in der Datei enthalten sind. Diese Option wird als KVSet-Dateiinhaltsprofil in App Configuration-Importtools bezeichnet. Sie ist hilfreich, wenn Sie alle Ihre App Configuration-Daten, einschließlich regulärer Schlüssel-Wert-Paare, Key Vault-Verweise und Featureflags, in einer Datei verwalten und dann anschließend in einem Vorgang importieren möchten.

Der Rest dieses Dokuments behandelt beide Dateiinhaltsprofile ausführlich und verwendet Azure CLI als Beispiel. Dasselbe Konzept gilt auch für andere App Configuration-Importtools.

Dateiinhaltsprofil: Standard (default)

Das Standard-Dateiinhaltsprofil in App Configuration-Tools bezieht sich auf das herkömmliche Konfigurationsdateischema, das in vorhandenen Programmierframeworks oder -systemen weit verbreitete Anwendung findet. App Configuration unterstützt die Dateiformate JSON, YAML und Eigenschaften.

Im folgenden Beispiel sehen Sie eine Konfigurationsdatei namens appsettings.json, die eine Konfigurationseinstellung und ein Featureflag enthält.

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

Führen Sie den folgenden CLI-Befehl aus, um sie in App Configuration mit der dev-Bezeichnung zu importieren, und verwenden Sie den Doppelpunkt (:) als Trennzeichen, um den Schlüsselnamen zu vereinfachen. Sie können optional den Parameter „--profile appconfig/default“ hinzufügen. Er wird im Beispiel übersprungen, da es sich um den Standardwert handelt.

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

Key Vault-Verweise erfordern einen bestimmten Inhaltstyp beim Importieren, weshalb Sie sie in einer separaten Datei aufbewahren. Das folgende Beispiel ist eine Datei namens keyvault-refs.json.

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

Führen Sie den folgenden CLI-Befehl aus, um sie mit der test-Bezeichnung und dem „Key Vault“-Verweisinhaltstyp zu importieren.

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 der folgenden Tabelle werden alle importierten Daten in Ihrem App Configuration-Speicher gezeigt.

Schlüssel Wert Bezeichnung Inhaltstyp
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Warnung dev
Database:ConnectionString {"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Dateiinhaltsprofil: KVSet

Das KVSet-Dateiinhaltsprofil in App Configuration-Tools bezieht sich auf ein Dateischema, das alle Eigenschaften eines App Configuration-Schlüssel-Wert-Paars enthält, einschließlich Schlüssel, Wert, Bezeichnung, Inhaltstyp und Tags. Die Datei ist im JSON-Format. Die Schemaspezifikation finden Sie unter KVSet-Dateischema.

Im folgenden Beispiel sehen Sie eine Datei, die auf dem KVSet-Dateiinhaltsprofil basiert, namens appconfigdata.json, die ein Featureflag, einen Key Vault-Verweis und ein reguläres Schlüssel-Wert-Paar enthält.

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

Tipp

Wenn Sie das Beispiel im vorherigen Abschnitt absolviert haben und über die Daten in Ihrem App Configuration-Speicher verfügen, können Sie sie mithilfe des CLI-Befehls in eine Datei exportieren:

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

Nachdem die Datei exportiert wurde, aktualisieren Sie die enabled-Eigenschaft des Beta-Featurflags in true und ändern Logging:LogLevel:Default in Debug.

Führen Sie den folgenden CLI-Befehl mit dem Parameter „--profile appconfig/kvset“ aus, um die Datei in Ihren App Configuration-Speicher zu importieren. Sie müssen keine Datentransformationsregeln angeben, z. B. Trennzeichen, Bezeichnung oder Inhaltstyp, wie Sie es im Abschnitt zum Standard-Dateiinhaltsprofil gemacht haben, da sich alle Informationen bereits in der Datei befinden.

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

Hinweis

Das KVSet-Dateiinhaltsprofil wird derzeit nur unterstützt in

In der folgenden Tabelle werden alle importierten Daten in Ihrem App Configuration-Speicher gezeigt.

Schlüssel Wert Bezeichnung Inhaltstyp
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Logging:LogLevel:Default Debuggen dev
Database:ConnectionString {"uri":"https://<your-vault-name>.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Nächste Schritte