导入或导出配置数据
Azure 应用程序配置支持数据导入和导出操作。 使用这些操作可以批量处理配置数据,并在应用程序配置存储和代码项目之间交换数据。 例如,可以设置两个应用配置存储,一个用于测试,另一个用于生产。 可以在它们之间复制应用程序设置,这样就不必两次输入数据。
本文提供了使用 Azure 门户或 Azure CLI 导入和导出数据的指南。 如果你已采用“配置即代码”并在 GitHub 或 Azure Devops 中管理配置,则可以使用 GitHub Actions 或使用 Azure Pipeline Push Task 设置正在进行的配置文件导入。
导入数据
“导入”会将配置数据引入到现有源的应用程序配置存储中。 使用导入功能将数据迁移到应用程序配置存储中,或聚合来自多个源的数据。
本指南演示如何导入应用程序配置数据:
导入配置文件中的数据
按照以下步骤导入文件中的键值。
注意
不支持导入文件中的功能标志。 如果配置文件包含功能标志,它们将自动导入为常规键值。
在 Azure 门户中执行以下步骤:
浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。
在“导入”选项卡上,选择“源服务”下的“配置文件”。
使用以下参数填写窗体:
参数 |
说明 |
示例 |
对于语言 |
在“.NET”、“Java (Spring)”和“其他”之间选择要导入的文件的语言。 |
.NET |
文件类型 |
选择要导入的文件类型:Yaml、Properties 或 Json。 |
Json |
选择“文件夹”图标,然后浏览到要导入的文件。
填写窗体的下一部分:
参数 |
说明 |
示例 |
Separator |
分隔符是在导入的配置文件中分析的字符,用于分隔将添加到配置存储中的键值。 选择以下任一选项:.、,、:、;、/、-、_、—。 |
; |
前缀 |
可选。 键前缀是键值“键”属性的开头部分。 前缀可用于管理配置存储中的键值组。 输入的前缀将追加到从该文件导入的每个键值的“键”属性前面。 |
TestApp: |
Label |
可选。 请选择现有标签或输入将分配给导入的键值的新标签。 |
prod |
内容类型 |
可选。 指示要导入的文件是 Key Vault 引用还是 JSON 文件。 有关 Key Vault 引用的详细信息,请转到在 ASP.NET Core 应用中使用 Key Vault 引用。 |
JSON (application/json) |
选择“应用”以继续进行导入。
已从 JSON 文件导入键值,为其分配了标签“prod”和前缀“TestApp”。 使用分隔符“:”,并且导入的所有键值都已将内容类型设置为“JSON”。
在 Azure CLI 中,执行以下步骤。
输入导入命令 az appconfig kv import
并添加以下参数:
参数 |
说明 |
示例 |
--name |
输入要将数据导入到应用程序配置存储的名称。 |
my-app-config-store |
--source |
输入 file 以指示要从文件中导入应用配置数据。 |
file |
--path |
输入包含要导入数据的文件的本地路径。 |
C:/Users/john/Downloads/data.json |
--format |
输入 yaml、属性或 json 以指示要导入的文件的格式。 |
json |
(可选)还添加以下参数:
参数 |
说明 |
示例 |
--separator |
可选。 分隔符是用于将键值平展为 Json/Yaml 的分隔符。 导出分层结构需要分隔符,并且属性文件和功能标志会忽略分隔符。 选择以下任一选项:. 、, 、: 、; 、/ 、- 、_ 、— 。 |
; |
--prefix |
可选。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 此前缀将附加到每个导入键值的“键”属性的前面。 |
TestApp: |
--label |
可选。 输入标签以分配给导入的键值。 |
prod |
--content-type |
可选。 输入 appconfig/kvset 或 application/json ,声明导入的内容包含 Key Vault 引用或 JSON 文件。 |
application/json |
示例:从 JSON 文件导入所有键值和功能标志,应用标签“prod”,并追加前缀“TestApp”。 添加“application/json”内容类型。
az appconfig kv import --name my-app-config-store --source file --path D:/abc.json --format json --separator ; --prefix TestApp: --label prod --content-type application/json
命令行显示即将进行的更改的列表。 通过选择 y
确认导入。
你从 JSON 文件导入了键值,并为其分配了标签“prod”和前缀“TestApp:”。 使用分隔符“;”,并且导入的所有键值都已将内容类型设置为“JSON”。
有关更多可选参数和示例,请转到 az appconfig kv import。
导入来自应用程序配置存储区的数据
可以将值从一个应用程序配置存储区导入到另一个应用程序配置存储区,也可以将值从一个应用程序配置存储区导入到同一应用程序配置存储区,以便复制其值并应用不同的参数,例如新标签或内容类型。
按照以下步骤从 Azure 应用程序配置存储区导入键值和功能标志。
在 Azure 门户中执行以下步骤:
浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。
在“导入”选项卡上,选择“源服务”下的“应用程序配置”。
选择“选择资源”,使用以下参数填写表单,然后选择“应用”:
参数 |
说明 |
示例 |
订阅 |
已默认选择当前订阅。 |
my-subscription |
资源组 |
选择包含要导入配置内容的应用程序配置存储区的资源组。 已默认选择当前资源组。 |
my-resource-group |
资源 |
选择包含要导入配置内容的应用程序配置存储区。 |
my-other-app-config-store |
注意
消息“成功提取访问密钥”表示已成功连接应用程序配置存储区。
填写窗体的下一部分:
参数 |
说明 |
示例 |
源标签 |
至少选择一个标签以导入具有相应标签的值。 “全选”将导入带有标签的键值,“无标签”将仅导入没有标签的键值。 |
prod |
在特定时间 |
可选。 填写特定时间可以从特定时间点导入键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 |
2022 年 07 月 28 日上午 12:00:00 |
重写默认键值标签 |
可选。 默认情况下,导入的项使用其当前标签。 选中该框并输入标签,使用自定义标签替代这些默认值。 |
new |
重写默认键值内容类型 |
可选。 默认情况下,导入的项使用其当前内容类型。 选中该框,然后选择“内容类型”下的“Key Vault 引用”或“JSON(应用程序/json)”,指出导入的内容包含 Key Vault 引用或 JSON 文件。 只能为导入的键值重写内容类型。 功能标志的默认内容类型是“application/vnd.microsoft.appconfig.ff+json;charset=utf-8”,并且不会通过此参数更新。 |
JSON (application/json) |
选择“应用”以继续进行导入。
你在 2021 年 1 月 28 日上午 12 点从应用程序配置存储区导入带有“prod”标签的键值和功能标志,并为其分配了标签“new”。 导入的所有键值都已将内容类型设置为“JSON”。
在 Azure CLI 中,执行以下步骤。
输入导入命令 az appconfig kv import
并输入以下参数:
参数 |
说明 |
示例 |
--name |
输入要将数据导入到应用程序配置存储的名称 |
my-app-config-store |
--source |
输入 appconfig 以指示要从应用程序配置存储区导入数据。 |
appconfig |
--src-name |
输入要从中导入数据的应用程序配置存储区的名称。 |
my-source-app-config |
--src-label |
将导入内容限制为具有特定标签的键值。 如果不使用此参数,则仅导入具有 null 标签的键值。 支持星号作为筛选符号:对所有标签输入 * ,对于带有 abc 前缀的所有标签,输入 abc* 。 |
prod |
(可选)添加以下参数:
参数 |
说明 |
示例 |
--label |
可选。 输入标签以分配给导入的键值。 |
new |
--content-type |
可选。 输入 appconfig/kvset 或 application/json ,声明导入的内容包含 Key Vault 引用或 JSON 文件。 只能为导入的键值重写内容类型。 功能标志的默认内容类型是“application/vnd.microsoft.appconfig.ff+json;charset=utf-8”,并且不会通过此参数更新。 |
application/json |
示例:从另一个应用程序配置导入带有标签“prod”的键值和功能标志,并为其分配标签“new”。 添加“application/json”内容类型。
az appconfig kv import --name my-app-config-store --source appconfig --src-name my-source-app-config --src-label prod --label new --content-type application/json
命令行显示即将进行的更改的列表。 通过选择 y
确认导入。
已从应用程序配置存储区导入带有“prod”标签的键值,并为其分配了标签“new”。 导入的所有键值都已将内容类型设置为“JSON”。
有关更多可选参数和示例,请转到 az appconfig kv import。
从 Azure 应用服务导入数据
按照以下步骤从 Azure 应用服务导入键值。
注意
应用服务目前不支持功能标志。 导入到应用服务的所有功能标志将自动转换为键值。 App 服务资源只能包含键值。
通过 Azure 门户:
浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。
在“导入”选项卡上,选择“源服务”下的“应用服务”。
选择“选择资源”,使用以下参数填写表单,然后选择“应用”:
参数 |
说明 |
示例 |
订阅 |
已默认选择当前订阅。 |
my-subscription |
资源组 |
选择包含要导入配置内容的应用服务的资源组。 |
my-resource-group |
资源 |
选择包含要导入配置内容的应用服务。 |
my-app-service |
注意
将显示一条消息,指示从源应用服务资源成功提取的键值数。
填写窗体的下一部分:
参数 |
说明 |
示例 |
前缀 |
可选。 键前缀是键值“键”属性的开头部分。 前缀可用于管理配置存储中的键值组。 此前缀将附加到每个导入键值的“key”属性的前面。 |
TestApp: |
Label |
可选。 请选择现有标签或输入将分配给导入的键值的新标签。 |
prod |
内容类型 |
可选。 指示要导入的文件是 Key Vault 引用还是 JSON 文件。 有关 Key Vault 引用的详细信息,请转到在 ASP.NET Core 应用中使用 Key Vault 引用。 |
JSON (application/json) |
选择“应用”以继续进行导入。
已将应用服务中的所有应用程序设置导入为键值,并为其分配标签“prod”和前缀“TestApp”。 导入的所有键值都已将内容类型设置为“JSON”。
在 Azure CLI 中,执行以下步骤。
输入导入命令 az appconfig kv import
并添加以下参数:
参数 |
说明 |
示例 |
--name |
输入要将数据导入到应用程序配置存储的名称。 |
my-app-config-store |
--source |
输入 appservice 以指示要从 Azure 应用服务中导入应用配置数据。 |
appservice |
--appservice-account |
输入应用服务的 ARM ID 或使用应用服务的名称,假设其与应用程序配置位于同一订阅和资源组中。 |
/subscriptions/123/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/my-app-service 或 my-app-service |
(可选)还添加以下参数:
参数 |
说明 |
示例 |
--prefix |
可选。 键前缀是键值“键”属性的开头部分。 前缀可用于管理配置存储中的键值组。 此前缀将附加到每个导入键值的“键”属性的前面。 |
TestApp: |
--label |
可选。 输入标签以分配给导入的键值。 如果未指定标签,则 null 标签将分配给键值。 |
prod |
--content-type |
可选。 输入 appconfig/kvset 或 application/json,声明导入的内容包含 Key Vault 引用或 JSON 文件。 |
application/json |
要获取 --appservice-account
的值,请使用命令 az webapp show --resource-group <resource-group> --name <resource-name>
。
示例:将应用服务中的所有应用程序设置导入为带有标签“prod”的键值,将其添加到应用程序配置存储区中,并添加“TestApp:”前缀。
az appconfig kv import --name my-app-config-store --source appservice --appservice-account /subscriptions/123/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/my-app-service --label prod --prefix TestApp:
命令行显示即将进行的更改的列表。 通过选择 y
确认导入。
已将应用服务中的所有应用程序设置导入为键值,为其分配标签“prod”,并添加了“TestApp:”前缀。 导入的所有键值都已将内容类型设置为“JSON”。
有关更多可选参数和示例,请转到 az appconfig kv import。
导出数据
“导出”会将存储在应用程序配置中的配置数据写入另一个目标。 例如,使用导出功能将应用配置存储中的数据保存到一个文件(可以在部署期间将该文件嵌入应用程序代码中)。
本指南演示如何导出应用程序配置数据:
将数据导出到配置文件
按照以下步骤将配置数据从应用配置存储区导出到 Json、Yaml 或 Properties 文件。
注意
目前,CLI 仅支持将功能标志从应用程序配置存储导出到配置文件。
在 Azure 门户中执行以下步骤:
浏览到应用配置存储,选择“导入/导出”。
在“导出”选项卡上,选择“目标服务”下的“配置文件”。
使用以下参数填写窗体:
参数 |
说明 |
示例 |
前缀 |
可选。 将从每个键值的“键”属性中剪裁此前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 |
TestApp: |
源标签 |
选择一个现有标签,以将导出内容限制为具有特定标签的键值。 如果未选择标签,则默认仅导出带有“无标签”标签的键值。 参阅下面的说明。 |
prod |
在特定时间 |
可选。 填写特定时间可以从特定时间点导入键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 |
2022 年 07 月 28 日上午 12:00:00 |
文件类型 |
选择要导出的文件类型:Yaml、Properties 或 Json。 |
JSON |
Separator |
分隔符是用于将键值平展为 Json/Yaml 的分隔符。 它支持配置的分层结构,不适用于属性文件和功能标志。 选择以下选项之一:.、,、:、;、/、-、_、—,或(无分隔符)。 |
; |
重要
如果未选择“从标签”,则仅导出不包含标签的键值。 若要导出带标签的键值,必须选择其标签。 请注意,只能在门户中为每个导出选择一个标签,如果想要导出具有指定的所有标签的键值,请使用 CLI。
选择“导出”以完成此导出。
已从配置文件导出具有“prod”标签的键值,其状态为 2021 年 7 月 28 日上午 12:00:00,并去掉了前缀“TestApp”。 以文件中的“;”分隔这些值。
在 Azure CLI 中,执行以下步骤。
输入导出命令 az appconfig kv export
并添加以下参数:
参数 |
说明 |
示例 |
--name |
输入包含要导出键值的应用程序配置存储区的名称。 |
my-app-config-store |
--destination |
输入 file 指示将数据导出到文件。 |
file |
--path |
输入要保存文件的路径。 |
C:/Users/john/Downloads/data.json |
--format |
输入 yaml 、properties 或 json 指示要导出的文件的格式。 |
json |
--label |
输入标签以导出带有此标签的键值和功能标志。 如果未指定标签,则默认情况下,仅导出没有标签的键值和功能标志。 可以输入一个标签,通过使用 , 分隔这些标签来输入多个标签,或者使用 * 在帐户中采用所有标签。 |
prod |
重要
如果未选择标签,则仅导出不包含标签的键值。 若要导出带标签的键值,必须选择其标签。
(可选)还添加以下参数:
参数 |
说明 |
示例 |
--separator |
可选。 分隔符是用于将键值平展为 Json/Yaml 的分隔符。 导出分层结构需要分隔符,并且属性文件和功能标志会忽略分隔符。 选择以下任一选项:. 、, 、: 、; 、/ 、- 、_ 、— 。 |
; |
--prefix |
可选。 要从每个键值的“键”属性中剪裁的前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 功能标志将忽略前缀。 |
TestApp: |
示例:将带有标签“prod”的所有键值和功能标志导出到 JSON 文件。
az appconfig kv export --name my-app-config-store --label prod --destination file --path D:/abc.json --format json --separator ; --prefix TestApp:
命令行显示导出到文件的键值列表。 通过选择 y
确认导出。
已将具有“prod”标签的键值和功能标志导出到配置文件,并剪裁了前缀“TestApp”。 以文件中的“;”分隔这些值。
有关更多可选参数和示例,请转到 az appconfig kv export。
将数据导出到应用程序配置存储区
按照以下步骤将键值和功能标志导出到 Azure 应用程序配置存储区。
可以将值从一个应用程序配置存储区导出到另一个应用程序配置存储区,也可以将值从一个应用程序配置存储区导出到同一应用程序配置存储区,以便复制其值并应用不同的参数,例如新标签或内容类型。
在 Azure 门户中执行以下步骤:
浏览到包含要导出的数据的应用程序配置存储区,并从“操作”菜单中选择“导入/导出”。
在“导出”选项卡上,选择“目标服务”下的“应用程序配置”。
选择“选择资源”,使用以下参数填写表单,然后选择“应用”:
参数 |
说明 |
示例 |
订阅 |
已默认选择当前订阅。 |
my-subscription |
资源组 |
选择包含要导入配置内容的应用程序配置存储区的资源组。 |
my-resource-group |
资源 |
选择包含要导入配置内容的应用程序配置存储区。 |
my-app-config-store |
页面现在显示所选的“目标服务”和资源 ID。 “选择资源”操作允许切换到另一个源应用程序配置存储区。
填写窗体的下一部分:
参数 |
说明 |
示例 |
源标签 |
至少选择一个标签以导出具有相应标签的值。 “全选”将导出带有任何标签的键,“无标签”将仅导出没有标签的键。 |
prod |
在特定时间 |
可选。 填写特定时间可以从特定时间点导入键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 |
2022 年 07 月 28 日上午 12:00:00 |
重写默认键值标签 |
可选。 默认情况下,导入的项使用其当前标签。 选中该框并输入标签,使用自定义标签替代这些默认值。 |
new |
选择“应用”以继续导出。
你已从应用程序配置存储区导出带有“prod”标签的键值和功能标志,其状态为 2022 年 7 月 28 上午 12:00:00,并为其分配了标签“new”。
在 Azure CLI 中,执行以下步骤。
输入导出命令 az appconfig kv export
并输入以下参数:
参数 |
说明 |
示例 |
--name |
输入包含要导出键值的应用程序配置存储区的名称。 |
my-app-config-store |
--destination |
输入 appconfig 以指示要将数据导出到应用程序配置存储区。 |
appconfig |
--dest-name |
输入要将数据导出到应用程序配置存储的名称。 |
my-other-app-config-store |
--label |
输入标签以导出带有此标签的键值和功能标志。 如果未指定标签,则默认情况下,仅导出没有标签的键值和功能标志。 可以输入一个标签,通过使用 , 分隔这些标签来输入多个标签,或者使用 * 在帐户中采用所有标签。 |
prod |
重要
如果要导出的键值具有标签,则必须使用命令 --label
并输入相应的标签。 如果未选择标签,则仅导出不包含标签的键值。 使用逗号 (,
) 选择多个标签,或使用 *
包含所有标签,包括 null 标签(无标签)。
(可选)还添加以下参数:
参数 |
说明 |
示例 |
--dest-label |
可选。 输入目标标签,将此标签分配给导出的键值。 |
new |
示例:将带有“prod”标签的键值和功能标志导出到另一个应用程序配置存储区,并添加目标标签“new”。
az appconfig kv export --name my-app-config-store --destination appconfig --dest-name my-other-app-config-store --dest-label new --label prod
命令行显示导出到文件的键值列表。 通过选择 y
确认导出。
你已从应用程序配置存储区导出带有“prod”标签的键值和功能标志,并为其分配了标签“new”。
有关更多可选参数和示例,请转到 az appconfig kv import。
将数据导出到 Azure 应用服务
按照以下步骤将键值导出到 Azure 应用服务。
在 Azure 门户中执行以下步骤:
浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。
在“导出”选项卡上,选择“目标服务”下的“应用服务”。
选择“选择资源”,使用以下参数填写表单,然后选择“应用”:
参数 |
说明 |
示例 |
订阅 |
已默认选择当前订阅。 |
my-subscription |
资源组 |
选择包含要导出配置内容的应用服务的资源组。 |
my-resource-group |
资源 |
选择包含要导出配置内容的应用服务。 |
my-app-service |
页面现在显示所选的“目标服务”和资源 ID。 “选择资源”操作允许切换到另一个目标应用服务资源。
(可选)填写窗体的下一部分:
参数 |
说明 |
示例 |
前缀 |
可选。 将从每个导出的键值“键”属性中剪裁此前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 功能标志将忽略前缀。 |
TestApp: |
导出为参考 |
可选。 选中可将键值作为应用程序配置参考导出到应用服务。 了解详细信息 |
|
在特定时间 |
可选。 填写此项以从特定时间点导出键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 |
2022 年 07 月 28 日上午 12:00:00 |
源标签 |
可选。 选择一个现有标签,以将导出内容限制为具有特定标签的键值。 如果未选择标签,则仅导出带有“无标签”标签的键值。 |
prod |
选择“应用”以继续导出。
已从应用服务资源中导出具有“prod”标签的键值,其状态为 2021 年 7 月 28 日上午 12:00:00,并剪裁了前缀“TestApp”。 已使用 JSON 格式的内容类型导出这些键值。
如果选中此框以将键值导出为参考,则导出的键值在应用服务资源配置设置的“源”列中显示为应用程序配置参考。
在 Azure CLI 中,执行以下步骤。
输入导出命令 az appconfig kv export
并输入以下参数:
参数 |
说明 |
示例 |
--name |
输入包含要导出键值的应用程序配置存储区的名称。 |
my-app-config-store |
--destination |
输入 appservice 指示将数据导出到应用服务。 |
appservice |
--appservice-account |
输入应用服务的 ARM ID 或使用应用服务的名称,假设其与应用程序配置位于同一订阅和资源组中。 |
/subscriptions/123/resourceGroups/my-as-resource-group/providers/Microsoft.Web/sites/my-app-service 或 my-app-service |
--label |
可选。 输入标签以导出带有此标签的键值和功能标志。 如果未指定标签,则默认情况下,仅导出没有标签的键值和功能标志。 |
prod |
要获取 --appservice-account
的值,请使用命令 az webapp show --resource-group <resource-group> --name <resource-name>
。
(可选)还添加前缀:
参数 |
说明 |
示例 |
--prefix |
可选。 要从导出的键值的“键”属性剪裁的前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 |
TestApp: |
示例:将带有“prod”标签的所有键值导出到应用服务应用程序,并剪裁前缀“TestApp”。
az appconfig kv export --name my-app-config-store --destination appservice --appservice-account /subscriptions/123/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/my-app-service/config/web --label prod --prefix TestApp:
命令行显示导出到应用服务资源的键值列表。 通过选择 y
确认导出。
已将所有带有“prod”标签的键值导出到 Azure 应用服务资源,并去掉了前缀“TestApp:”。
(可选)指定要导出为应用程序配置参考的标志。
参数 |
说明 |
--export-as-reference -r |
可选。 指定键值是否作为应用程序配置参考导出到应用服务。 了解详细信息。 |
示例:将带有“prod”标签的所有键值作为应用程序配置参考导出到应用服务应用程序。
az appconfig kv export --name my-app-config-store --destination appservice --appservice-account "/subscriptions/123/resourceGroups/my-resource-group/providers/Microsoft.Web/sites/my-app-service" --label prod --export-as-reference
命令行显示作为应用程序配置引用导出到应用服务资源的键值列表。 通过选择 y
确认导出。
已将带有“prod”标签的所有键值作为应用程序配置参考导出到 Azure 应用服务资源。 在应用服务资源中,导入的键值将在“源”列中显示为应用程序配置参考。
有关更多可选参数和示例,请转到 az appconfig kv export。
错误消息
导入或导出应用程序配置键值时可能会遇到以下错误消息:
- 所选文件必须介于 1 到 2097152 个字节之间。:文件太大。 选择较小的文件。
- 禁止对存储进行公共访问,或者从不在存储专用终结点配置中的专用终结点进行访问。 若要从应用程序配置存储导入键值,需要有权访问该存储。 如有必要,请为源存储区启用公共访问,或从批准的专用终结点对其进行访问。 如果刚刚启用公共访问,请等待最多 5 分钟,以便刷新缓存。
后续步骤