Freigeben über


Azure App Configuration-Unterstützung für Konfigurationsdateien

Eine gängige Möglichkeit zum Speichern von Konfigurationsdaten ist die Verwendung von Dateien. Wenn Sie Die Azure App-Konfiguration verwenden möchten, um Ihre Konfigurationsdaten zu verwalten, Sie aber derzeit Dateien verwenden, müssen Sie Ihre Daten nicht manuell eingeben. Sie können Tools verwenden, um Ihre Konfigurationsdateien zu importieren.

Wenn Sie ihre Daten in der App-Konfiguration verwalten möchten, handelt es sich bei dem Importvorgang um eine einmalige Datenmigration. Eine weitere Möglichkeit besteht darin, ihre Konfigurationsdaten in Dateien weiter zu verwalten und die Dateien im Rahmen Ihrer kontinuierlichen Integration und kontinuierlichen Übermittlung (CI/CD) zu importieren. Dieser Fall tritt auf, wenn Sie die Konfiguration als Code übernehmen.

Zwei Dateiinhaltsprofile sind verfügbar, wenn Sie Konfigurationsdateien verwenden:

  • Das Standardmäßige Dateiinhaltsprofil: Das herkömmliche Konfigurationsdateischema
  • Das KVSet-Dateiinhaltsprofil: Ein Schema, das alle Eigenschaften des App-Konfigurationsschlüsselwerts enthält

In diesem Artikel werden beide Dateiinhaltsprofile erläutert. Außerdem finden Sie Beispiele für das Importieren und Exportieren von Konfigurationsdateien. Die Beispiele verwenden die Azure CLI, aber die Konzepte in diesem Artikel gelten auch für andere App-Konfigurationsimportmethoden.

Dateiinhaltsprofil: Standard (default)

In App-Konfigurationstools ist das Standarddateiinhaltsprofil das herkömmliche Konfigurationsdateischema, das von vorhandenen Programmierframeworks und Systemen weit verbreitet wird. Dieses Profil wird beim Importieren von Tools für die App-Konfiguration wie dem Azure-Portal, der Azure CLI, der Azure App-Konfigurationsimportaufgabe in Azure Pipelines und GitHub-Aktionen verwendet. Die App-Konfiguration unterstützt JSON-, YAML- und Eigenschaftendateiformate.

Dieses Profil ist hilfreich, wenn Sie eine Datei während der Entwicklung als Fallbackkonfiguration für Ihre Anwendung oder die lokale Konfiguration verwenden möchten. Wenn Sie die Konfigurationsdatei importieren, geben Sie an, wie die Daten in App-Konfigurationsschlüsselwerte und Featurekennzeichnungen transformiert werden sollen.

Die folgende Konfigurationsdatei ,appsettings.json, stellt ein Beispiel für das Standarddateiinhaltsprofil bereit. Diese Datei enthält eine Konfigurationseinstellung und ein Feature-Flag.

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

Führen Sie den folgenden Azure CLI-Befehl aus, um diese Datei in die App-Konfiguration zu importieren. Es wendet eine dev Beschriftung auf die Einstellung und das Feature-Flag an und verwendet einen Doppelpunkt (:) als Trennzeichen, um den Schlüsselnamen zu vereinfachen.

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

Sie können optional den folgenden Parameter zum vorherigen Befehl hinzufügen: --profile appconfig/default Der Parameter ist optional, da das Standardprofil appconfig/default ist.

Azure Key Vault-Verweise erfordern beim Importieren einen bestimmten Inhaltstyp. Daher behalten Sie sie in einer separaten Datei bei, wie in der folgenden Datei gezeigt, keyvault-refs.json:

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

Führen Sie zum Importieren dieser Datei den folgenden Azure CLI-Befehl aus. Es wendet eine test Bezeichnung auf den Key Vault-Verweis an und verwendet den Key Vault-Referenzinhaltstyp.

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 der folgenden Tabelle sind alle importierten Daten im App-Konfigurationsspeicher aufgeführt:

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

Dateiinhaltsprofil: KVSet

Bei den App-Konfigurationstools ist das KVSet-Dateiinhaltsprofil ein Dateischema, das alle Eigenschaften eines App-Konfigurationsschlüsselwerts enthält. Enthalten sind der Schlüsselname, sein Wert, seine Beschriftung, sein Inhaltstyp und seine Tags. Da sich alle Eigenschaften eines Schlüsselwerts in der Datei befinden, müssen Sie beim Importieren der Datei keine Transformationsregeln angeben.

Wenn Sie das KVSet-Profil verwenden, können Sie reguläre Schlüsselwerte, Key Vault-Verweise und Featurekennzeichnungen in einer Datei definieren. Daher ist dieses Profil hilfreich, wenn Sie alle App-Konfigurationsdaten in einer Datei verwalten und in einem Schritt importieren möchten.

Dateien, die dieses Profil verwenden, befinden sich im JSON-Format. Die Schemaspezifikation finden Sie im KVSet-Dateischema.

Die folgende Datei, appconfigdata.json, basiert auf dem KVSet-Dateiinhaltsprofil. Diese Datei enthält ein Feature-Flag, einen Key Vault-Verweis und einen Standardschlüsselwert.

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

Im vorherigen Abschnitt zeigt ein Beispiel, wie Daten in Ihren App-Konfigurationsspeicher importiert werden. Sie können diese Daten mithilfe des folgenden Azure CLI-Befehls in eine Datei exportieren:

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

Nachdem Sie die Datei exportiert haben, öffnen Sie sie in einem Text-Editor, und nehmen Sie die folgenden Änderungen vor:

  • Legen Sie die Beta-Featureflag enabled Eigenschaft auf true fest.
  • Setzen Sie die Logging:LogLevel:Default-Eigenschaft auf Debug.

Um die aktualisierte Datei in Ihren App-Konfigurationsspeicher zu importieren, führen Sie den folgenden CLI-Befehl aus, der den --profile appconfig/kvset Parameter enthält. Sie müssen keine Datentransformationsregeln angeben, z. B. ein Trennzeichen, eine Bezeichnung oder einen Inhaltstyp wie für das Standarddateiinhaltsprofil. Alle erforderlichen Informationen befinden sich bereits in der Datei.

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

Hinweis

Das KVSet-Dateiinhaltsprofil wird derzeit nur unterstützt in:

In der folgenden Tabelle sind alle importierten Daten im App-Konfigurationsspeicher aufgeführt:

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

Nächste Schritte