数据存储在应用配置中作为键值,其中值默认被视为字符串类型。 但是,可以使用与每个键值关联的内容类型属性来指定自定义类型。 此过程保留数据的原始类型,或者使应用程序的行为因内容类型而异。
概述
在应用配置中,可以使用 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 Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 向 Azure 进行身份验证。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用和管理 Azure CLI 中的扩展。
运行az version命令,以查看已安装的版本和依赖库。 若要升级到最新版本,请运行az upgrade。
- 应用配置库。 创建商店。
- 本教程需要 Azure CLI 2.10.0 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。
在应用配置中创建 JSON 键值
可以使用 Azure 门户、Azure CLI 或从 JSON 文件导入来创建 JSON 键值。 在本部分中,你将找到有关如何使用所有三种方法创建相同 JSON 键值的说明。
使用 Azure 门户创建 JSON 键值
将以下键值添加到应用程序配置存储区。 保留 标签 的默认值。 有关如何使用 Azure 门户或 CLI 将键值添加到存储区的详细信息,请转到创建键值。
密钥 | 价值 | 内容类型 |
---|---|---|
Settings:BackgroundColor | “绿色” | application/json |
Settings:FontSize | 24 | application/json |
Settings:UseDefaultRouting | 假 | application/json |
Settings:BlockedUsers | 零 | application/json |
Settings:ReleaseDate | “2020-08-04T12:34:56.789Z” | application/json |
Settings:RolloutPercentage | [25,50,75,100] | application/json |
Settings:Logging | {"Test":{"Level":"Debug"},"Prod":{"Level":"Warning"}} | application/json |
- 选择应用。
使用 Azure CLI 创建 JSON 键值
以下命令将在应用配置存储中创建 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 键值应如下所示:
若要进行检查,请在 Azure 门户中打开应用配置资源,并转到 “配置资源管理器”。
将 JSON 键值导出到文件
使用 JSON 键值的主要好处之一是在导出时保留值的原始数据类型。 如果应用配置中的键值没有 JSON 内容类型,则其值将被视为字符串。
请考虑以下没有 JSON 内容类型的键值:
密钥 | 价值 | 内容类型 |
---|---|---|
设置:字体大小 | 24 | |
Settings:UseDefaultRouting | 假 |
将这些键值导出到 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 应用程序配置将具有以下键值:
密钥 | 价值 |
---|---|
设置:字体大小 | 24 |
Settings:UseDefaultRouting | 假 |
可以直接访问新密钥,也可以选择将 配置值绑定到 .NET 对象的实例。
重要
.NET 配置提供程序版本 4.0.0(或更高版本)中提供了对 JSON 键值的本机支持。 有关详细信息,请转到 “后续步骤 ”部分。
如果使用 SDK 或 REST API 基于内容类型从应用配置读取键值,则应用程序负责分析 JSON 键值的值。
清理资源
如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。
重要
删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。
- 登录到 Azure 门户,然后选择“资源组”。
- 在按名称筛选框中,输入资源组的名称。
- 在结果列表中,选择资源组名称以查看概述。
- 选择“删除资源组”。
- 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除”。
片刻之后,将会删除该资源组及其所有资源。
后续步骤
了解如何在应用配置存储中使用 JSON 键值后,请创建用于使用这些键值的应用程序: