导入或导出配置数据

Azure 应用程序配置支持数据导入和导出操作。 使用这些操作可以批量处理配置数据,并在应用程序配置存储和代码项目之间交换数据。 例如,可以设置两个应用配置存储,一个用于测试,另一个用于生产。 可以在它们之间复制应用程序设置,这样就不必两次输入数据。

本文提供了使用应用程序配置导入和导出数据的相关指导信息。 如果要设置与 GitHub 存储库的持续同步,请参阅 GitHub ActionsAzure Pipelines 任务

可以使用 Azure 门户Azure CLI 导入或导出数据。

导入数据

“导入”会将配置数据引入到现有源的应用程序配置存储中。 使用导入功能将数据迁移到应用程序配置存储中,或聚合来自多个源的数据。

本指南演示如何导入应用程序配置数据:

导入配置文件中的数据

按照以下步骤导入文件中的键值。

注意

不支持导入文件中的功能标志。 如果配置文件包含功能标志,它们将自动导入为常规键值。

在 Azure 门户中执行以下步骤:

  1. 浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。

    Screenshot of the Azure portal, importing a file.

  2. 在“导入”选项卡上,选择“源服务”下的“配置文件”。

  3. 使用以下参数填写窗体:

    参数 说明 示例
    对于语言 在“.NET”、“Java (Spring)”和“其他”之间选择要导入的文件的语言。 .NET
    文件类型 选择要导入的文件类型:Yaml、Properties 或 Json。 Json
  4. 选择“文件夹”图标,然后浏览到要导入的文件。

    注意

    屏幕上会显示一条消息,指示文件已成功提取。

  5. 填写窗体的下一部分:

    参数 说明 示例
    Separator 分隔符是在导入的配置文件中分析的字符,用于分隔将添加到配置存储中的键值。 选择以下任一选项:.、,、:、;、/-、_、—。 ;
    前缀 可选。 键前缀是键值“键”属性的开头部分。 前缀可用于管理配置存储中的键值组。 输入的前缀将追加到从该文件导入的每个键值的“键”属性前面。 TestApp:
    Label 可选。 请选择现有标签或输入将分配给导入的键值的新标签。 prod
    内容类型 可选。 指示要导入的文件是 Key Vault 引用还是 JSON 文件。 有关 Key Vault 引用的详细信息,请转到在 ASP.NET Core 应用中使用 Key Vault 引用 JSON (application/json)
  6. 选择“应用”以继续进行导入。

已从 JSON 文件导入键值,为其分配了标签“prod”和前缀“TestApp”。 使用分隔符“:”,并且导入的所有键值都已将内容类型设置为“JSON”。

导入来自应用程序配置存储区的数据

可以将值从一个应用程序配置存储区导入到另一个应用程序配置存储区,也可以将值从一个应用程序配置存储区导入到同一应用程序配置存储区,以便复制其值并应用不同的参数,例如新标签或内容类型。

按照以下步骤从 Azure 应用程序配置存储区导入键值和功能标志。

在 Azure 门户中执行以下步骤:

  1. 浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。

    Screenshot of the Azure portal, importing from an App Configuration store.

  2. 在“导入”选项卡上,选择“源服务”下的“应用程序配置”。

  3. 选择“选择资源”,使用以下参数填写表单,然后选择“应用”:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导入配置内容的应用程序配置存储区的资源组。 已默认选择当前资源组。 my-resource-group
    资源 选择包含要导入配置内容的应用程序配置存储区。 my-other-app-config-store

    注意

    消息“成功提取访问密钥”表示已成功连接应用程序配置存储区。

  4. 填写窗体的下一部分:

    参数 说明 示例
    源标签 至少选择一个标签以导入具有相应标签的值。 “全选”将导入带有任何标签的键,“无标签”将仅导入没有标签的键。 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)
  5. 选择“应用”以继续进行导入。

你已从 2021 年 1 月 28 日上午 12 点从应用程序配置存储区导入带有“prod”标签的键值和功能标志,并为其分配了标签“new”。 导入的所有键值都已将内容类型设置为“JSON”。

从 Azure 应用服务导入数据

按照以下步骤从 Azure 应用服务导入键值。

注意

应用服务目前不支持功能标志。 导入到应用服务的所有功能标志将自动转换为键值。 App 服务资源只能包含键值。

通过 Azure 门户:

  1. 浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。

    Screenshot of the Azure portal, importing from App Service.

  2. 在“导入”选项卡上,选择“源服务”下的“应用服务”。

  3. 选择“选择资源”,使用以下参数填写表单,然后选择“应用”:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导入配置内容的应用服务的资源组。 my-resource-group
    资源 选择包含要导入配置内容的应用服务。 my-app-service

    注意

    将显示一条消息,指示从源应用服务资源成功提取的键值数。

  4. 填写窗体的下一部分:

    参数 说明 示例
    前缀 可选。 键前缀是键值“键”属性的开头部分。 前缀可用于管理配置存储中的键值组。 此前缀将附加到每个导入键值的“键”属性的前面。 TestApp:
    Label 可选。 请选择现有标签或输入将分配给导入的键值的新标签。 prod
    内容类型 可选。 指示要导入的文件是 Key Vault 引用还是 JSON 文件。 有关 Key Vault 引用的详细信息,请转到在 ASP.NET Core 应用中使用 Key Vault 引用 JSON (application/json)
  5. 选择“应用”以继续进行导入。

已将应用服务中的所有应用程序设置导入为键值,并为其分配标签“prod”和前缀“TestApp”。 导入的所有键值都已将内容类型设置为“JSON”。

导出数据

“导出”会将存储在应用程序配置中的配置数据写入另一个目标。 例如,使用导出功能将应用配置存储中的数据保存到一个文件(可以在部署期间将该文件嵌入应用程序代码中)。

本指南演示如何导出应用程序配置数据:

将数据导出到配置文件

按照以下步骤将配置数据从应用配置存储区导出到 Json、Yaml 或 Properties 文件。

注意

目前,CLI 仅支持将功能标志从应用程序配置存储导出到配置文件。

Azure 门户中执行以下步骤:

  1. 浏览到应用配置存储,选择“导入/导出”。

    Screenshot of the Azure portal, exporting a file

  2. 在“导出”选项卡上,选择“目标服务”下的“配置文件”。

  3. 使用以下参数填写窗体:

    参数 说明 示例
    前缀 可选。 将从每个键值的“键”属性中剪裁此前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 TestApp:
    源标签 选择一个现有标签,以将导出内容限制为具有特定标签的键值。 如果未选择标签,则默认仅导出带有“无标签”标签的键值。 参阅下面的说明。 prod
    在特定时间 可选。 填写特定时间可以从特定时间点导入键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    文件类型 选择要导出的文件类型:Yaml、Properties 或 Json。 JSON
    Separator 分隔符是用于将键值平展为 Json/Yaml 的分隔符。 它支持配置的分层结构,不适用于属性文件和功能标志。 选择以下选项之一:.、,、:、;、/-、_、—,或(无分隔符)。 ;

    重要

    如果未选择“从标签”,则仅导出不包含标签的键值。 若要导出带标签的键值,必须选择其标签。 请注意,只能在门户中为每个导出选择一个标签,如果想要导出具有指定的所有标签的键值,请使用 CLI。

  4. 选择“导出”以完成此导出。

已从配置文件导出具有“prod”标签的键值,其状态为 2021 年 7 月 28 日上午 12:00:00,并剪裁了前缀“TestApp”。 以文件中的“;”分隔这些值。

将数据导出到应用程序配置存储区

按照以下步骤将键值和功能标志导出到 Azure 应用程序配置存储区。

可以将值从一个应用程序配置存储区导出到另一个应用程序配置存储区,也可以将值从一个应用程序配置存储区导出到同一应用程序配置存储区,以便复制其值并应用不同的参数,例如新标签或内容类型。

在 Azure 门户中执行以下步骤:

  1. 浏览到包含要导出的数据的应用程序配置存储区,并从“操作”菜单中选择“导入/导出”。

    Screenshot of the Azure portal, exporting from an App Configuration store.

  2. 在“导出”选项卡上,选择“目标服务”下的“应用程序配置”。

  3. 选择“选择资源”,使用以下参数填写表单,然后选择“应用”:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导入配置内容的应用程序配置存储区的资源组。 my-resource-group
    资源 选择包含要导入配置内容的应用程序配置存储区。 my-app-config-store
  4. 页面现在显示所选的“目标服务”和资源 ID。 “选择资源”操作允许切换到另一个源应用程序配置存储区。

    注意

    屏幕上会显示一条消息,指示键值已成功提取。

  5. 填写窗体的下一部分:

    参数 说明 示例
    源标签 至少选择一个标签以导出具有相应标签的值。 “全选”将导出带有任何标签的键,“无标签”将仅导出没有标签的键。 prod
    在特定时间 可选。 填写特定时间可以从特定时间点导入键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    重写默认键值标签 可选。 默认情况下,导入的项使用其当前标签。 选中该框并输入标签,使用自定义标签替代这些默认值。 new
  6. 选择“应用”以继续导出。

你已从应用程序配置存储区导出带有“prod”标签的键值和功能标志,其状态为 2022/07/28 上午 12:00:00,并为其分配了标签“new”。

将数据导出到 Azure 应用服务

按照以下步骤将键值导出到 Azure 应用服务。

注意

当前不支持将功能标志导出到应用服务。

在 Azure 门户中执行以下步骤:

  1. 浏览到应用配置存储,从“操作”菜单中选择“导入/导出”。

    Screenshot of the Azure portal, exporting from App Service.

  2. 在“导出”选项卡上,选择“目标服务”下的“应用服务”。

  3. 选择“选择资源”,使用以下参数填写表单,然后选择“应用”:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导出配置内容的应用服务的资源组。 my-resource-group
    资源 选择包含要导出配置内容的应用服务。 my-app-service
  4. 页面现在显示所选的“目标服务”和资源 ID。 “选择资源”操作允许切换到另一个目标应用服务资源。

  5. (可选)填写窗体的下一部分:

    参数 说明 示例
    前缀 可选。 将从每个导出的键值“键”属性中剪裁此前缀。 键前缀是键的开头部分。 前缀可用于管理配置存储中的键值组。 功能标志将忽略前缀。 TestApp:
    导出为参考 可选。 选中可将键值作为应用程序配置参考导出到应用服务。 了解详细信息
    在特定时间 可选。 填写此项以从特定时间点导出键值。 这是所选配置存储中键值的时间点。 格式:“YYYY-MM-DDThh:mm:ssZ”。 将此字段留空时,默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    源标签 可选。 选择一个现有标签,以将导出内容限制为具有特定标签的键值。 如果未选择标签,则仅导出带有“无标签”标签的键值。 prod
  6. 选择“应用”以继续导出。

已从应用服务资源中导出具有“prod”标签的键值,其状态为 2021 年 7 月 28 日上午 12:00:00,并剪裁了前缀“TestApp”。 已使用 JSON 格式的内容类型导出这些键值。

如果选中此框以将键值导出为参考,则导出的键值将在应用服务资源配置设置的“源”列中显示为应用程序配置参考。

Screenshot of App Service configuration settings. Exported App Configuration reference in App Service(Portal).

错误消息

导入或导出应用程序配置键值时可能会遇到以下错误消息:

  • 所选文件必须介于 1 到 2097152 个字节之间。:文件太大。 选择较小的文件。
  • 禁止对存储进行公共访问,或者从不在存储专用终结点配置中的专用终结点进行访问。 若要从应用程序配置存储导入键值,需要有权访问该存储。 如有必要,请为源存储区启用公共访问,或从批准的专用终结点对其进行访问。 如果刚刚启用公共访问,请等待最多 5 分钟,以便刷新缓存。