Azure App Configuration podpora konfiguračních souborů

Soubory jsou jedním z nejběžnějších způsobů ukládání konfiguračních dat. Abyste mohli rychle začít, App Configuration obsahuje nástroje, které vám pomůžou s importem konfiguračních souborů, takže nemusíte data zadávat ručně. Tato operace je jednorázová migrace dat, pokud plánujete spravovat data v App Configuration po jejich importu. V některých jiných případech, například když jako kód přijmete konfiguraci, můžete pokračovat ve správě konfiguračních dat v souborech a importovat je v rámci procesu CI/CD opakovaně. Můžete zjistit, že se vás týká jeden z těchto dvou scénářů:

  • Konfigurační soubor ponecháte ve formátu, který jste měli dříve. Tento formát je užitečný, pokud chcete soubor použít jako záložní konfiguraci pro vaši aplikaci nebo místní konfiguraci během vývoje. Při importu konfiguračního souboru určete, jak se mají data transformovat tak, aby App Configuration hodnoty klíčů. Tato možnost je výchozím profilem obsahu souboru v App Configuration import nástrojů, jako jsou portál, Azure CLI, úloha nabízených oznámení kanálu Azure, GitHub Actions atd.
  • Konfigurační soubor se uchovává ve formátu, který obsahuje všechny App Configuration vlastnosti klíč-hodnota. Při importu souboru nemusíte zadávat žádná transformační pravidla, protože všechny vlastnosti hodnoty klíč-hodnota už v souboru jsou. Tato možnost se ve App Configuration nástrojích pro import nazývá profil obsahu souboru KVSet. Je užitečné, pokud chcete spravovat všechna data App Configuration, včetně běžných hodnot klíčů, Key Vault odkazů a příznaků funkcí, v jednom souboru a importovat je najednou.

Ve zbývající části tohoto dokumentu se podrobně probereme oba profily obsahu souborů a jako příklad použijeme Azure CLI. Stejný koncept platí i pro další nástroje App Configuration importu.

Profil obsahu souboru: výchozí

Výchozí profil obsahu souboru v nástrojích App Configuration odkazuje na konvenční schéma konfiguračních souborů široce přijímané existujícími programovacími architekturami nebo systémy. App Configuration podporuje formáty souborů JSON, Yaml nebo Properties.

V následujícím příkladu je konfigurační soubor s názvem, appsettings.json který obsahuje jedno nastavení konfigurace a jeden příznak funkce.

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

Spuštěním následujícího příkazu rozhraní příkazového řádku ho naimportujte do App Configuration s dev popiskem a jako oddělovač použijte dvojtečku (:) pro zploštění názvu klíče. Volitelně můžete přidat parametr --profile appconfig/default. V příkladu se přeskočí, protože se jedná o výchozí hodnotu.

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

Key Vault odkazy vyžadují během importu určitý typ obsahu, takže je uchovávejte v samostatném souboru. Následující příklad je soubor s názvem keyvault-refs.json.

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

Spuštěním následujícího příkazu rozhraní příkazového řádku ho test naimportujte s popiskem a Key Vault referenčním typem obsahu.

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

Následující tabulka uvádí všechna importovaná data v úložišti App Configuration.

Klíč Hodnota Popisek Typ obsahu
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} Dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Protokolování:LogLevel:Default Upozornění Dev
Databáze: Připojovací řetězec {"uri":"https://< názv>_trezoru.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Profil obsahu souboru: KVSet

Profil obsahu souboru KVSet v nástrojích App Configuration odkazuje na schéma souboru, které obsahuje všechny vlastnosti App Configuration klíč-hodnota, včetně klíče, hodnoty, popisku, typu obsahu a značek. Soubor je ve formátu JSON. Specifikace schématu najdete v tématu Schéma souboru KVSet .

Následující příklad je soubor založený na profilu obsahu souboru KVSet s názvem appconfigdata.json, který obsahuje příznak funkce, odkaz na Key Vault a normální klíč-hodnota.

{
  "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

Pokud jste postupovali podle příkladu v předchozí části a máte data v úložišti App Configuration, můžete je exportovat do souboru pomocí příkazu rozhraní příkazového řádku:

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

Po exportu souboru aktualizujte vlastnost příznaku Betaenabled funkce na true a změňte na Logging:LogLevel:DefaultDebug.

Spuštěním následujícího příkazu rozhraní příkazového řádku s parametrem --profile appconfig/kvset naimportujte soubor do úložiště App Configuration. Nemusíte zadávat žádná pravidla transformace dat, jako je oddělovač, popisek nebo typ obsahu, jako jste to udělali v oddílu výchozího profilu obsahu souboru, protože všechny informace už v souboru jsou.

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

Poznámka

Profil obsahu souboru KVSet se v současné době podporuje v

Následující tabulka uvádí všechna importovaná data v úložišti App Configuration.

Klíč Hodnota Popisek Typ obsahu
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta funkce","enabled":true,"conditions":{"client_filters":[]}} Dev application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Protokolování:LogLevel:Default Debug Dev
Databáze: Připojovací řetězec {"uri":"https://< názv>_trezoru.vault.azure.net/secrets/db-secret"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Další kroky