Поделиться через


Использование типа контента для хранения значений ключей JSON в конфигурации приложений

Данные хранятся в конфигурации приложений в качестве ключевых значений, где значения обрабатываются как строковый тип по умолчанию. Однако можно указать пользовательский тип с помощью свойства типа контента, связанного с каждым ключом-значением. Этот процесс сохраняет исходный тип данных или заставляет приложение вести себя иначе в зависимости от типа содержимого.

Обзор

В конфигурации приложений можно использовать тип мультимедиа JSON в качестве типа контента ключевых значений, чтобы воспользоваться следующими преимуществами:

  • Упрощенное управление данными: управление значениями ключей, например массивами, становится гораздо проще на портале Azure.
  • Расширенный экспорт данных: примитивные типы, массивы и объекты JSON будут сохранены во время экспорта данных.
  • Нативная поддержка с поставщиком конфигураций приложений: ключи и значения с типом содержимого JSON будут отлично работать при использовании библиотек поставщиков конфигураций в приложениях.

Допустимый тип контента JSON

Типы мультимедиа, определенные здесь, можно назначить типу контента, связанному с каждым ключом-значением. Тип носителя состоит из типа и подтипа. Если тип — application, а подтип (или суффикс) — json, то тип носителя будет считаться допустимым типом контента JSON. Ниже приведены некоторые примеры допустимых типов контента JSON:

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

Допустимые значения JSON

Если ключевое значение имеет тип контента JSON, его значение должно быть в допустимом формате JSON для правильной обработки. В противном случае клиенты могут дать сбой или переключиться на резервный вариант и рассматривать это как строковый формат. Ниже приведены некоторые примеры допустимых значений JSON:

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

Замечание

В оставшейся части этой статьи любое ключ-значение в конфигурации приложения с допустимым типом содержимого JSON и допустимым значением JSON будет называться ключ-значение JSON.

В этом руководстве описано, как:

  • Создайте значения ключей JSON в конфигурации приложений.
  • Импортируйте значения ключей JSON из JSON-файла.
  • Экспорт значений ключей JSON в JSON-файл.
  • Используйте значения ключей JSON в ваших приложениях.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Предпосылки

  • Хранилище конфигурации приложений, как показано в руководстве по созданию хранилища.
  • Для работы с этим руководством требуется версия 2.10.0 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Создание значений ключей JSON в конфигурации приложений

Значения ключей JSON можно создавать с помощью портала Azure, Azure CLI или импорта из JSON-файла. В этом разделе приведены инструкции по созданию одинаковых значений ключей JSON с помощью всех трех методов.

Создание значений ключей JSON с помощью портала Azure

Добавьте следующие ключевые значения в хранилище Конфигурация приложений. Оставьте метку со значением по умолчанию. Дополнительные сведения о добавлении значений ключей в хранилище с помощью портал Azure или ИНТЕРФЕЙСА командной строки см. в разделе "Создание значения ключа".

Ключ Ценность Тип контента
Параметры:BackgroundColor "Зеленый" application/json
Параметры:FontSize 24 application/json
Параметры:UseDefaultRouting ложный application/json
Параметры:BlockedUsers нулевой application/json
Settings:ReleaseDate "2020-08-04T12:34:56.789Z" application/json
Параметры:RolloutPercentage [25,50,75,100] application/json
Параметры:Ведение журнала {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}} application/json
  1. Нажмите кнопку "Применить".

Создание значений ключей JSON с помощью Azure CLI

Следующие команды создают значения ключей JSON в хранилище конфигурации приложений. Замените <appconfig_name> именем хранилища конфигурации приложений.

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\"}}

Это важно

Если вы используете Azure CLI или Azure Cloud Shell для создания значений ключей JSON, указанное значение должно быть экранированной строкой JSON.

Импорт значений ключей JSON из файла

Создайте JSON-файл под названием Import.json со следующим содержимым и импортируйте его как пары ключ-значение в конфигурацию приложения.

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

Замечание

Аргумент --depth используется для выравнивания иерархических данных из файла в значения ключей. В этом руководстве указана глубина для демонстрации того, что можно также хранить объекты JSON в качестве значений в конфигурации приложений. Если глубина не указана, объекты JSON будут выровнированы до самого глубокого уровня по умолчанию.

Значения ключей JSON, созданные в конфигурации приложений, должны выглядеть следующим образом:

Снимок экрана: хранилище конфигурации, содержащее значения ключей JSON.

Чтобы проверить это, откройте ресурс конфигурации приложений на портале Azure и перейдите в обозреватель конфигурации.

Экспорт значений ключей JSON в файл

Одним из основных преимуществ использования значений ключей JSON является возможность сохранения исходного типа данных ваших значений при экспорте. Если ключ-значение в конфигурации приложений не имеет типа контента JSON, его значение будет рассматриваться как строка.

Рассмотрим эти ключевые значения без типа контента JSON:

Ключ Ценность Тип контента
Параметры:Размер шрифта двадцать четыре
Параметры:ИспользоватьМаршрутизациюПоУмолчанию неправда

При экспорте этих ключевых значений в JSON-файл значения значения будут экспортированы в виде строк:

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

Однако при экспорте значений ключей JSON в файл все значения сохраняют исходный тип данных. Чтобы проверить этот процесс, экспортируйте значения ключей из конфигурации приложения в JSON-файл. Вы увидите, что экспортированный файл содержит то же содержимое, что Import.json и ранее импортированный файл.

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

Замечание

Если в хранилище конфигурации приложений есть некоторые ключевые значения без типа контента JSON, они также будут экспортированы в тот же файл в строковом формате.

Потребление значений ключей JSON в приложениях

Самый простой способ использовать значения ключей JSON в приложении — через библиотеки поставщиков конфигурации приложений. В библиотеках поставщиков не требуется реализовать специальную обработку значений ключей JSON в приложении. Они будут проанализированы и преобразованы в соответствие с собственной конфигурацией приложения.

Например, если в конфигурации приложения есть следующее ключевое значение:

Ключ Ценность Тип контента
Настройки {"FontSize":24,"UseDefaultRouting":false} application/json

Конфигурация приложения .NET будет иметь следующие ключевые значения:

Ключ Ценность
Параметры:Размер шрифта двадцать четыре
Параметры:ИспользоватьМаршрутизациюПоУмолчанию неправда

Вы можете получить доступ к новым ключам напрямую или привязать значения конфигурации к экземплярам объектов .NET.

Это важно

Встроенная поддержка значений ключей JSON доступна в поставщике конфигурации .NET версии 4.0.0 (или более поздней). Дополнительные сведения см. в разделе "Дальнейшие действия ".

Если вы используете пакет SDK или REST API для чтения значений ключей из конфигурации приложений на основе типа контента, приложение отвечает за синтаксический анализ значения ключа JSON.

Очистите ресурсы

Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.

Это важно

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все ресурсы в ней будут удалены безвозвратно. Убедитесь, что вы не удаляете случайно неправильную группу ресурсов или ресурсы. Если вы создали ресурсы для этой статьи внутри группы ресурсов, которая содержит другие ресурсы, которые вы хотите сохранить, удалите каждый ресурс индивидуально из его собственной панели, вместо того чтобы удалять группу ресурсов.

  1. Войдите на портал Azure и выберитеГруппы ресурсов.
  2. В поле Фильтр по имени введите название вашей группы ресурсов.
  3. В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
  4. Выберите команду Удалить группу ресурсов.
  5. Вам предлагается подтвердить удаление группы ресурсов. Введите имя вашей группы ресурсов для подтверждения и выберите Удалить.

Через несколько мгновений группа ресурсов и все ее ресурсы будут удалены.

Дальнейшие шаги

Теперь, когда вы знаете, как работать с значениями ключей JSON в магазине конфигурации приложений, создайте приложение для использования этих ключевых значений: