Używanie typu zawartości do przechowywania wartości kluczy JSON w usłudze App Configuration

Dane są przechowywane w usłudze App Configuration jako wartości klucza, gdzie wartości są domyślnie traktowane jako typ ciągu. Można jednak określić typ niestandardowy przy użyciu właściwości typu zawartości skojarzonej z każdą wartością klucza. Ten proces zachowuje oryginalny typ danych lub sprawia, że aplikacja zachowuje się inaczej na podstawie typu zawartości.

Omówienie

W usłudze App Configuration możesz użyć typu nośnika JSON jako typu zawartości klucza-wartości, aby uzyskać następujące korzyści:

  • Prostsze zarządzanie danymi: zarządzanie wartościami kluczy, takimi jak tablice, stanie się znacznie łatwiejsze w witrynie Azure Portal.
  • Rozszerzony eksport danych: typy pierwotne, tablice i obiekty JSON zostaną zachowane podczas eksportowania danych.
  • Natywna obsługa dostawcy usługi App Configuration: wartości klucza z typem zawartości JSON będą działać prawidłowo w przypadku korzystania z bibliotek dostawcy usługi App Configuration w aplikacjach.

Prawidłowy typ zawartości JSON

Typy multimediów, zgodnie z definicją w tym miejscu, można przypisać do typu zawartości skojarzonego z każdą wartością klucza. Typ nośnika składa się z typu i podtypu. Jeśli typ to application , a podtyp (lub sufiks) to json, typ nośnika będzie traktowany jako prawidłowy typ zawartości JSON. Oto kilka przykładów prawidłowych typów zawartości JSON:

  • application/json
  • application/activity+json
  • application/vnd.foobar+json;charset=utf-8

Prawidłowe wartości JSON

Jeśli klucz-wartość ma typ zawartości JSON, jego wartość musi być w prawidłowym formacie JSON, aby klienci mogli go poprawnie przetworzyć. W przeciwnym razie klienci mogą zakończyć się niepowodzeniem lub wrócić i traktować go jako format ciągu. Oto kilka przykładów prawidłowych wartości JSON:

  • "John Doe"
  • 723
  • false
  • null
  • "2020-01-01T12:34:56.789Z"
  • [1, 2, 3, 4]
  • {"ObjectSetting":{"Targeting":{"Default":true,"Level":"Information"}}}

Uwaga

W pozostałej części tego artykułu każda wartość klucza w usłudze App Configuration, która ma prawidłowy typ zawartości JSON, a prawidłowa wartość JSON będzie określana jako klucz-wartość JSON.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Utwórz wartości kluczy JSON w usłudze App Configuration.
  • Zaimportuj wartości klucza JSON z pliku JSON.
  • Eksportuj wartości kluczy JSON do pliku JSON.
  • Używanie wartości kluczy JSON w aplikacjach.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Magazyn usługi App Configuration. Utwórz magazyn.
  • Ten samouczek wymaga wersji 2.10.0 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Tworzenie wartości kluczy JSON w usłudze App Configuration

Wartości klucza JSON można utworzyć przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub zaimportowania z pliku JSON. W tej sekcji znajdziesz instrukcje dotyczące tworzenia tych samych wartości klucza JSON przy użyciu wszystkich trzech metod.

Tworzenie wartości kluczy JSON przy użyciu witryny Azure Portal

Dodaj następujące wartości klucza do magazynu App Configuration. Pozostaw wartość domyślną Etykieta . Aby uzyskać więcej informacji na temat dodawania wartości klucz-wartości do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do artykułu Create a key-value (Tworzenie wartości klucza).

Key Wartość Typ zawartości
Ustawienia:BackgroundColor "Zielony" application/json
Ustawienia:FontSize 24 application/json
Ustawienia:UseDefaultRouting false application/json
Ustawienia:BlockedUsers null application/json
Ustawienia:ReleaseDate "2020-08-04T12:34:56.789Z" application/json
Ustawienia:RolloutPercentage [25,50,75,100] application/json
Ustawienia:Rejestrowanie {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}} application/json
  1. Wybierz Zastosuj.

Tworzenie wartości kluczy JSON przy użyciu interfejsu wiersza polecenia platformy Azure

Następujące polecenia spowodują utworzenie wartości kluczy JSON w magazynie usługi App Configuration. Zastąp <appconfig_name> ciąg nazwą sklepu App Configuration.

appConfigName=<appconfig_name>
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BackgroundColor --value \"Green\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:FontSize --value 24
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:UseDefaultRouting --value false
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:BlockedUsers --value null
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:ReleaseDate --value \"2020-08-04T12:34:56.789Z\"
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:RolloutPercentage --value [25,50,75,100]
az appconfig kv set -n $appConfigName --content-type application/json --key Settings:Logging --value {\"Test\":{\"Level\":\"Debug\"},\"Prod\":{\"Level\":\"Warning\"}}

Ważne

Jeśli używasz interfejsu wiersza polecenia platformy Azure lub usługi Azure Cloud Shell do tworzenia wartości kluczy JSON, podana wartość musi być ciągiem JSON ucieczki.

Importowanie wartości kluczy JSON z pliku

Utwórz plik JSON o nazwie Import.json z następującą zawartością i zaimportuj go jako klucz-wartości do usługi App Configuration:

{
  "Settings": {
    "BackgroundColor": "Green",
    "BlockedUsers": null,
    "FontSize": 24,
    "Logging": {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}},
    "ReleaseDate": "2020-08-04T12:34:56.789Z",
    "RolloutPercentage": [25,50,75,100],
    "UseDefaultRouting": false
  }
}
az appconfig kv import -s file --format json --path "~/Import.json" --content-type "application/json" --separator : --depth 2

Uwaga

Argument --depth jest używany do spłaszczania danych hierarchicznych z pliku do wartości klucz-wartość. W tym samouczku określono głębokość demonstrowania, że można również przechowywać obiekty JSON jako wartości w usłudze App Configuration. Jeśli głębokość nie zostanie określona, obiekty JSON zostaną domyślnie spłaszczone na najgłębszym poziomie.

Utworzone wartości klucza JSON powinny wyglądać następująco w usłudze App Configuration:

Screenshot that shows the Config store containing JSON key-values.

Aby to sprawdzić, otwórz zasób usługi App Configuration w witrynie Azure Portal i przejdź do Eksploratora konfiguracji.

Eksportowanie wartości kluczy JSON do pliku

Jedną z głównych zalet używania wartości klucza JSON jest możliwość zachowania oryginalnego typu danych wartości podczas eksportowania. Jeśli klucz-wartość w usłudze App Configuration nie ma typu zawartości JSON, jego wartość będzie traktowana jako ciąg.

Rozważ następujące wartości klucza bez typu zawartości JSON:

Key Wartość Typ zawartości
Ustawienia:FontSize 24
Ustawienia:UseDefaultRouting fałsz

Podczas eksportowania tych wartości klucza do pliku JSON wartości zostaną wyeksportowane jako ciągi:

{
  "Settings": {
    "FontSize": "24",
    "UseDefaultRouting": "false"
  }
}

Jednak podczas eksportowania wartości klucza JSON do pliku wszystkie wartości zachowają oryginalny typ danych. Aby zweryfikować ten proces, wyeksportuj wartości kluczy z usługi App Configuration do pliku JSON. Zobaczysz, że wyeksportowany plik ma taką samą zawartość jak Import.json wcześniej zaimportowany plik.

az appconfig kv export -d file --format json --path "~/Export.json" --separator :

Uwaga

Jeśli magazyn usługi App Configuration zawiera niektóre wartości klucza bez typu zawartości JSON, zostaną one również wyeksportowane do tego samego pliku w formacie ciągu.

Korzystanie z wartości kluczy JSON w aplikacjach

Najprostszym sposobem korzystania z wartości kluczy JSON w aplikacji jest użycie bibliotek dostawcy usługi App Configuration. Biblioteki dostawcy nie muszą implementować specjalnej obsługi wartości kluczy JSON w aplikacji. Zostaną one przeanalizowane i przekonwertowane w celu dopasowania do natywnej konfiguracji aplikacji.

Jeśli na przykład masz następującą wartość klucza w usłudze App Configuration:

Key Wartość Typ zawartości
Ustawienia {"FontSize":24,"UseDefaultRouting":false} application/json

Konfiguracja aplikacji platformy .NET będzie mieć następujące wartości klucza:

Key Wartość
Ustawienia:FontSize 24
Ustawienia:UseDefaultRouting fałsz

Możesz uzyskać bezpośredni dostęp do nowych kluczy lub powiązać wartości konfiguracji z wystąpieniami obiektów platformy .NET.

Ważne

Natywna obsługa wartości kluczy JSON jest dostępna w dostawcy konfiguracji platformy .NET w wersji 4.0.0 (lub nowszej). Aby uzyskać więcej informacji, przejdź do sekcji Następne kroki .

Jeśli używasz zestawu SDK lub interfejsu API REST do odczytywania klucz-wartości z usługi App Configuration na podstawie typu zawartości, aplikacja jest odpowiedzialna za analizowanie wartości klucza JSON.

Czyszczenie zasobów

Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.

Ważne

Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.

Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.

Następne kroki

Teraz, gdy wiesz, jak pracować z wartościami kluczy JSON w magazynie App Configuration, utwórz aplikację do korzystania z tych klucz-wartości: