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


Использование типа контента для хранения пар "ключ-значение" 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, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

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

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

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

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

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

Ключ Значение Тип содержимого
Параметры:BackgroundColor "Зеленый" application/json
Параметры:FontSize 24 application/json
Параметры:UseDefaultRouting false application/json
Параметры:BlockedUsers NULL application/json
Параметры: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\"}}

Важно!

Если для создания пар "ключ-значение" JSON используется Azure CLI или Azure Cloud Shell, то указанное значение должно быть экранированной строкой 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 должны выглядеть следующим образом в Конфигурации приложений:

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

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

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

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

Рассмотрите следующие пары "ключ-значение" без типа контента JSON:

Ключ Значение Тип содержимого
Settings:FontSize 24
Settings:UseDefaultRouting false

При экспорте этих пар "ключ-значение" в 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 будет иметь следующие пары "ключ-значение":

Ключ Значение
Settings:FontSize 24
Settings:UseDefaultRouting false

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

Важно!

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

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

Очистка ресурсов

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

Важно!

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

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

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

Следующие шаги

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