Использование типа контента для хранения пар "ключ-значение" 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 |
- Нажмите Применить.
Создание пар "ключ-значение" 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 должны выглядеть следующим образом в Конфигурации приложений:
Чтобы проверка это, откройте ресурс Конфигурация приложений в портал 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.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Важно!
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
Теперь, когда вы умеете работать с парами "ключ-значение" JSON в хранилище Конфигураций приложений, создайте приложение для использования этих пар "ключ-значение":