obsługa konfiguracji aplikacja systemu Azure dla plików konfiguracji
Pliki są jednym z najpopularniejszych sposobów przechowywania danych konfiguracji. Aby ułatwić szybkie rozpoczęcie pracy, usługa App Configuration ma 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 usłudze 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 importowanie ich w ramach procesu ciągłej integracji/ciągłego wdrażania cyklicznie. Możesz znaleźć jeden z tych dwóch scenariuszy dotyczy:
- Zachowasz plik konfiguracji w formacie wcześniej. Ten format jest przydatny, jeśli chcesz użyć pliku jako konfiguracji rezerwowej dla aplikacji lub lokalnej konfiguracji podczas programowania. Podczas importowania pliku konfiguracji określ, w jaki sposób dane mają zostać przekształcone w klucz-wartości usługi App Configuration. Ta opcja jest domyślnym profilem zawartości pliku w narzędziu importowania usługi App Configuration, takich jak portal, interfejs wiersza polecenia platformy Azure, zadanie wypychania usługi Azure Pipeline, funkcja GitHub Actions itp.
- Plik konfiguracji należy zachować w formacie zawierającym wszystkie właściwości klucz-wartość usługi App Configuration. 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 narzędziach importowania usługi App Configuration. Warto zarządzać wszystkimi danymi usługi App Configuration, w tym zwykłymi kluczami, odwołaniami do usługi Key Vault i flagami funkcji, w jednym pliku i importować je w jednym zrzucie.
W pozostałej części tego dokumentu szczegółowo omówiono zarówno profile zawartości plików, jak i jako przykład użyjemy interfejsu wiersza polecenia platformy Azure. Ta sama koncepcja dotyczy również innych narzędzi importowania usługi App Configuration.
Profil zawartości pliku: domyślny
Domyślny profil zawartości pliku w narzędziach usługi App Configuration odnosi się do konwencjonalnego schematu pliku konfiguracji powszechnie stosowanego przez istniejące struktury programowania lub systemy. Usługa 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 usługi App Configuration z etykietą dev
i użyć dwukropka (:
) jako separatora, aby spłaszczyć nazwę klucza. Opcjonalnie możesz dodać parametr "--profile appconfig/default". Został pominięty 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
Odwołania do usługi Key Vault wymagają określonego typu zawartości podczas importowania, aby zachować 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 usługi 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 usługi App Configuration.
Key | Wartość | Etykieta | Typ zawartości |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"","enabled":false,"conditions":{"client_filters":[]}} | Dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Rejestrowanie:LogLevel:Default | Ostrzeżenie | Dev | |
Database:Połączenie ionString | {"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 odwołuje się do schematu pliku zawierającego wszystkie właściwości klucz-wartość klucza usługi App Configuration, 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 jest plikiem opartym na profilu zawartości pliku KVSet o nazwie appconfigdata.json
, zawierającym flagę funkcji, odwołanie do usługi 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": {}
}
]
}
Napiwek
Jeśli wykonano przykład 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ść naLogging:LogLevel:Default
Debug
.enabled
Beta
Uruchom następujące polecenie interfejsu wiersza polecenia z parametrem "--profile appconfig/kvset", aby zaimportować plik do magazynu usługi App Configuration. Nie musisz określać żadnych reguł przekształcania danych, takich jak separator, etykieta lub typ zawartości, 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
- Interfejs wiersza polecenia platformy Azure w wersji 2.30.0 lub nowszej
- aplikacja systemu Azure konfiguracji wypychania zadania w wersji 3.3.0 lub nowszej
W poniższej tabeli przedstawiono wszystkie zaimportowane dane w magazynie usługi App Configuration.
Key | Wartość | Etykieta | Typ zawartości |
---|---|---|---|
.appconfig.featureflag/Beta | {"id":"Beta","description":"Beta feature","enabled":true,"conditions":{"client_filters":[]}} | Dev | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 |
Rejestrowanie:LogLevel:Default | Debug | Dev | |
Database:Połączenie ionString | {"uri":"https://< our-vault-name.vault.azure.net/secrets/db-secret>"} | test | application/vnd.microsoft.appconfig.keyvaultref+json; charset=utf-8 |