Azure App Configuration obsługa plików konfiguracji

Pliki są jednym z najpopularniejszych sposobów przechowywania danych konfiguracji. Aby ułatwić szybkie rozpoczęcie pracy, App Configuration zawiera narzędzia ułatwiające importowanie plików konfiguracji, więc nie trzeba wpisywać danych ręcznie. Ta operacja jest jednorazową migracją danych, jeśli planujesz zarządzać danymi w App Configuration po ich zaimportowaniu. W niektórych innych przypadkach, na przykład w przypadku wdrożenia konfiguracji jako kodu, możesz kontynuować zarządzanie danymi konfiguracji w plikach i importować je w ramach procesu ciągłej integracji/ciągłego wdrażania. Może się okazać, że jeden z tych dwóch scenariuszy dotyczy:

  • Plik konfiguracji należy zachować w formacie, który był wcześniej. Ten format jest przydatny, jeśli chcesz użyć pliku jako konfiguracji rezerwowej dla aplikacji lub konfiguracji lokalnej podczas opracowywania. Podczas importowania pliku konfiguracji określ sposób przekształcania danych w celu App Configuration klucz-wartości. Ta opcja jest domyślnym profilem zawartości pliku w App Configuration importowania narzędzi, takich jak portal, interfejs wiersza polecenia platformy Azure, zadanie wypychania usługi Azure Pipeline, GitHub Actions itp.
  • Plik konfiguracji jest zachowywany w formacie zawierającym wszystkie App Configuration właściwości klucz-wartość. Podczas importowania pliku nie trzeba określać żadnych reguł przekształcania, ponieważ wszystkie właściwości klucz-wartość są już w pliku. Ta opcja jest nazywana profilem zawartości pliku KVSet w App Configuration importowania narzędzi. Warto zarządzać wszystkimi danymi App Configuration, w tym zwykłymi kluczami, Key Vault odwołaniami i flagami funkcji, w jednym pliku i importować je w jednym zdjęciu.

W pozostałej części tego dokumentu szczegółowo omówiono zarówno profile zawartości plików, jak i jako przykład użyto interfejsu wiersza polecenia platformy Azure. Ta sama koncepcja dotyczy również innych App Configuration importowania narzędzi.

Profil zawartości pliku: wartość domyślna

Domyślny profil zawartości pliku w narzędziach App Configuration odnosi się do konwencjonalnego schematu pliku konfiguracji powszechnie stosowanego przez istniejące struktury programowania lub systemy. App Configuration obsługuje formaty plików JSON, Yaml lub Properties.

Poniższy przykład to plik konfiguracji o nazwie appsettings.json zawierający jedno ustawienie konfiguracji i jedną flagę funkcji.

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

Uruchom następujące polecenie interfejsu wiersza polecenia, aby zaimportować go do App Configuration z etykietą dev i użyć dwukropka (:) jako separatora, aby spłaszczyć nazwę klucza. Opcjonalnie możesz dodać parametr "--profile appconfig/default". Jest pomijany w przykładzie, ponieważ jest to wartość domyślna.

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

Key Vault odwołania wymagają określonego typu zawartości podczas importowania, więc przechowujesz je w osobnym pliku. Poniższy przykład to plik o nazwie keyvault-refs.json.

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

Uruchom następujące polecenie interfejsu wiersza polecenia, aby zaimportować go z etykietą test i typem zawartości referencyjnej Key Vault.

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

W poniższej tabeli przedstawiono wszystkie zaimportowane dane w magazynie App Configuration.

Klucz Wartość Etykieta Typ zawartości
.appconfig.featureflag/Beta {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} deweloper application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Rejestrowanie:LogLevel:Default Ostrzeżenie deweloper
Database:ConnectionString {"uri":"https://< our-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Profil zawartości pliku: KVSet

Profil zawartości pliku KVSet w narzędziach App Configuration odnosi się do schematu pliku zawierającego wszystkie właściwości App Configuration klucz-wartość, w tym klucz, wartość, etykietę, typ zawartości i tagi. Plik jest w formacie JSON. Zobacz Schemat pliku KVSet , aby uzyskać specyfikację schematu.

Poniższy przykład to plik oparty na profilu zawartości pliku KVSet o nazwie appconfigdata.json, zawierający flagę funkcji, odwołanie Key Vault i zwykłą wartość klucza.

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

Porada

Jeśli postępujesz zgodnie z przykładem w poprzedniej sekcji i masz dane w magazynie App Configuration, możesz wyeksportować je do pliku przy użyciu polecenia interfejsu wiersza polecenia:

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

Po wyeksportowaniu pliku zaktualizuj właściwość flagi funkcji na true i zmień wartość na Logging:LogLevel:DefaultDebug.enabledBeta

Uruchom następujące polecenie interfejsu wiersza polecenia z parametrem "--profile appconfig/kvset", aby zaimportować plik do magazynu App Configuration. Nie musisz określać żadnych reguł przekształcania danych, takich jak separator, etykieta lub typ zawartości, tak jak w domyślnej sekcji profilu zawartości pliku, ponieważ wszystkie informacje są już w pliku.

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

Uwaga

Profil zawartości pliku KVSet jest obecnie obsługiwany w programie

W poniższej tabeli przedstawiono wszystkie zaimportowane dane w magazynie App Configuration.

Klucz Wartość Etykieta Typ zawartości
.appconfig.featureflag/Beta {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} deweloper application/vnd.microsoft.appconfig.ff+json;charset=utf-8
Rejestrowanie:LogLevel:Default Debug deweloper
Database:ConnectionString {"uri":"https://< our-vault-name.vault.azure.net/secrets/db-secret>"} test application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8

Następne kroki