你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

导入或导出配置数据

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

本文提供了使用 Azure 门户Azure CLI 导入和导出数据的指南。 如果你已采用“配置即代码”并在 GitHub 或 Azure Devops 中管理配置,则可以使用 GitHub Actions 或使用 Azure Pipeline Push Task 设置正在进行的配置文件导入。

导入数据

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

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

导入配置文件中的数据

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

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

  1. 导航到应用程序配置存储区,从“操作”菜单中选择“导入/导出”

    Azure 门户的屏幕截图,显示如何导入文件。

  2. “导入”单选按钮默认处于选中状态。 在“源类型”下,选择“配置文件”。

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

    参数 说明 示例
    文件类型 选择要导入的文件类型:YAML、Properties 或 JSON。 Json
  4. 单击“浏览”按钮,然后选择要导入的文件。

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

    参数 说明 示例
    文件内容配置文件 选择内容配置文件:默认或 KVSet。 默认文件内容配置文件是指现有编程框架或系统广泛采用的传统配置文件架构,支持 JSON、Yaml 或 Properties 文件格式。 KVSet 文件内容配置文件是指包含应用程序配置键值的所有属性(包括键、值、标签、内容类型和标记)的文件架构。 默认值
    导入模式 导入模式用于确定是否忽略相同的键值。 使用“忽略匹配项”选项,将忽略存储中与配置文件中的键值相同的任何键值。 使用“全部”选项,配置文件中的所有键值都会更新。 忽略匹配项
    排除功能标志 如果选中,将不会导入功能标志。 未选中
    严格 如果选中该框,则当文件内容配置文件设置为“默认”时,将删除存储中具有指定前缀和标签且未包含在配置文件中的所有键值。 将文件内容配置文件设置为 KVSet 时,存储中未包含在配置文件中的任何键值都将被删除。 如果未选中该框,则不会删除存储中的键值。 未选中
    分隔符 分隔符是用于将 JSON 或 YAML 文件平展为键值的分隔符。 对于属性文件和功能标志,将忽略它。 支持的值包括无分隔符、句点 (.)、逗号 (,)、分号 (;)、连字符 (-)、下划线 (_)、双下划线 (__)、斜杠 (/) 和冒号 (:)。 :
    Depth 可选。 将 JSON 或 YAML 文件平展为键值对的深度。 默认情况下,如果选择分隔符,文件将平展到最深层。 此设置不适用于属性文件或功能标志。
    添加前缀 可选。 如果指定,则将向所有已导入键值的键名添加前缀。 TestApp:
    添加标签 可选。 如果指定,则提供的标签将分配给所有导入的键值。 prod
    添加内容类型 可选。 如果指定,则提供的内容类型将添加到所有导入的键值。 JSON (application/json)
    添加标记 可选。 如果指定,则提供的标记将添加到所有导入的键值。 {tag: tag1}
  6. 选择“应用”以继续进行导入。

你已成功从 JSON 文件导入键值。 键名使用 : 分隔符平展,并带有 TestApp: 前缀。 所有导入的键值都标记为 prod,内容类型为 application/json,并用 tag: tag1 标记。

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

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

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

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

  1. 导航到应用程序配置存储区,从“操作”菜单中选择“导入/导出”

    Azure 门户的屏幕截图,其中显示从应用程序配置存储区导入。

  2. “导入”单选按钮默认处于选中状态。 在“源类型”下,选择“应用程序配置”

  3. 选择要从中导入数据的应用程序配置存储区,并使用以下参数填写表单:

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

    参数 说明 示例
    选择模式 选择是从常规键值(即默认选项)还是从快照导入。 默认值
    键筛选器 用于根据要导入的键名筛选键值。 如果未指定任何键,则所有键都符合条件。 以 test 开头
    在特定时间 可选。 填写此字段可从所选配置存储区中的特定时间点导入键值。 将此字段留空时,它会默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    源标签 选择一个或多个标签可导入与这些标签关联的键值。 如果未选择任何标签,则所有标签都符合条件。 prod
    排除功能标志 如果选中,将不会导入功能标志。 未选中
    添加前缀 可选。 如果指定,则将向所有已导入键值的键名添加前缀。 TestApp:
    重写标签 可选。 默认情况下,将保留源键值的原始标签。 若要重写它们,请选中该框并输入所导入键值的新标签。 new
    重写内容类型 可选。 默认情况下,将保留源键值的原始内容类型。 若要重写它们,请选中该框并输入所导入键值的新内容类型。 请注意,无法重写功能标志的内容类型。 JSON (application/json)
  5. 选择“应用”以继续进行导入。

你从应用程序配置存储区导入了截至 2021 年 1 月 28 日上午 12 点的键值,键名以 test 开头,标签为 prod。 键名的前缀为 TestApp:。 所有导入的键值都分配了标签 new 和内容类型 application/json

从 Azure 应用服务导入数据

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

注意

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

通过 Azure 门户:

  1. 导航到应用程序配置存储区,从“操作”菜单中选择“导入/导出”

    Azure 门户的屏幕截图,显示如何从应用服务导入。

  2. “导入”单选按钮默认处于选中状态。 在“源类型”下,选择“应用程序服务”

  3. 选择要从中导入数据的应用程序配置存储区,并使用以下参数填写表单:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导入配置内容的应用服务的资源组。 my-resource-group
    资源 选择包含要导入配置内容的应用服务。 my-app-service
  4. 填写窗体的下一部分:

    参数 说明 示例
    更新要引用的设置 如果选中,应用服务中的应用设置将更新为导入的键值的应用程序配置引用。 这样,就允许你今后在应用程序配置中管理应用设置。 应用服务将自动从应用程序配置中拉取当前值。 若要了解详细信息,请参阅使用应用服务和 Azure Functions 的应用程序配置引用 已选中
    添加前缀 可选。 如果指定,则将向所有已导入键值的键名添加前缀。 TestApp:
    添加标签 可选。 如果指定,则提供的标签将分配给所有导入的键值。 prod
    添加内容类型 可选。 如果指定,则提供的内容类型将添加到所有导入的键值。 JSON (application/json)
  5. 选择“应用”以继续进行导入。

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

导出数据

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

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

将数据导出到配置文件

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

Azure 门户中执行以下步骤:

  1. 导航到应用程序配置存储区,选择“导入/导出”

    Azure 门户的屏幕截图,显示如何导出文件

  2. 选择“导出”单选按钮,然后在“目标类型”下选择“配置文件”

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

    参数 说明 示例
    文件类型 选择要导出的文件类型:YAML、Properties 或 JSON。 JSON
    文件内容配置文件 选择内容配置文件:默认或 KVSet。 默认文件内容配置文件是指现有编程框架或系统广泛采用的传统配置文件架构,支持 JSON、Yaml 或 Properties 文件格式。 KVSet 文件内容配置文件是指包含应用程序配置键值的所有属性(包括键、值、标签、内容类型和标记)的文件架构。 默认值
    选择模式 选择是从常规键值(即默认选项)还是从快照导出。 默认值
    键筛选器 用于根据要导出的键名筛选键值。 如果未指定任何键,则所有键都符合条件。 以 TestApp 开头:
    在特定时间 可选。 填写此字段可从所选配置存储区中的特定时间点导出键值。 将此字段留空时,它会默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    源标签 选择该标签可导出与这些标签关联的键值。 如果未选择任何标签,则所有标签都符合条件。 请注意,使用 Default 文件内容配置文件导出时,只能选择一个标签。 若要导出具有多个标签的键值,请使用 KVSet 文件内容配置文件。 prod
    移除前缀 可选。 如果指定,将从包含该前缀的所有导出键值的键名中移除它。 TestApp:
    分隔符 分隔符用于对键名进行分段,并通过键值重新构造 JSON 或 YAML 文件的分层配置。 对于属性文件和功能标志,将忽略它。 支持的值包括无分隔符、句点 (.)、逗号 (,)、分号 (;)、连字符 (-)、下划线 (_)、双下划线 (__)、斜杠 (/) 和冒号 (:)。 :
  4. 选择“导出”以完成此导出。

你将截至 2021 年 7 月 28 日上午 12 点的键值从应用程序配置存储区导出到了 JSON 文件,键名以 TestApp: 开头,标签为 prod。 前缀 TestApp: 已从键名中去除,并且分隔符 : 用于对键名进行分段及重新构造分层 JSON 格式。

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

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

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

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

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

    Azure 门户的屏幕截图,其中显示从应用程序配置存储区导出。

  2. 选择“导出”单选按钮,然后在“目标类型”下选择“应用程序配置”

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

    参数 说明 示例
    选择模式 选择是从常规键值(即默认选项)还是从快照导出。 默认值
    键筛选器 用于根据要导出的键名筛选键值。 如果未指定任何键,则所有键都符合条件。 以 TestApp 开头:
    在特定时间 可选。 填写此字段可从所选配置存储区中的特定时间点导出键值。 将此字段留空时,它会默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    源标签 选择一个或多个标签可导出与这些标签关联的键值。 如果未选择任何标签,则所有标签都符合条件。 prod
    排除功能标志 如果选中,将不会导出功能标志。 未选中
  4. 选择目标存储,使用以下参数填写表单:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导出配置的应用程序配置存储区的资源组。 已默认选择当前资源组。 my-resource-group
    资源 选择要导出配置的应用程序配置存储区。 my-other-app-config-store
  5. 填写窗体的下一部分:

    参数 说明 示例
    移除前缀 可选。 如果指定,将从包含该前缀的所有导出键值的键名中移除它。 TestApp:
    重写标签 可选。 默认情况下,将保留源键值的原始标签。 若要重写它们,请选中该框并输入所导出键值的新标签。 new
    重写内容类型 可选。 默认情况下,将保留源键值的原始内容类型。 若要重写它们,请选中该框并输入所导出键值的新内容类型。 请注意,无法重写功能标志的内容类型。 JSON (application/json)
  6. 选择“应用”以继续导出。

你将截至 2022 年 7 月 28 日上午 12 点的键值从应用程序配置存储区导出到了另一个应用程序配置存储区,键名以 TestApp: 开头,标签为 prod。 所有导出的键值都去除了键前缀 TestApp:,并分配了标签 new 和内容类型 application/json

将数据导出到 Azure 应用服务

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

注意

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

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

  1. 导航到应用程序配置存储区,从“操作”菜单中选择“导入/导出”

    Azure 门户的屏幕截图,显示如何从应用服务导出。

  2. 选择“导出”单选按钮,然后在“目标类型”下选择“应用程序服务”

  3. 默认情况下会选中“导出为引用”选项。 选中该框后,应用服务中的应用程序设置将添加为所导出键值的应用程序配置引用。 这样,就可以在应用程序配置中管理设置,应用服务会自动从应用程序配置中拉取当前值。 若要了解详细信息,请参阅使用应用服务和 Azure Functions 的应用程序配置引用。 如果未选中该框,则键和值将直接导出到应用服务。 请记得在应用程序配置中进行更改时再次导出数据,以确保应用程序能够获取到更新。

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

    参数 说明 示例
    选择模式 选择是从常规键值(即默认选项)还是从快照导出。 默认值
    键筛选器 用于根据要导出的键名筛选键值。 如果未指定任何键,则所有键都符合条件。 以 TestApp 开头:
    在特定时间 可选。 填写此字段可从所选配置存储区中的特定时间点导出键值。 将此字段留空时,它会默认为键值的当前时间点。 2022 年 07 月 28 日上午 12:00:00
    源标签 选择一个标签以导出与此标签关联的键值。 prod
  5. 选择目标存储,并使用以下参数填写表单:

    参数 说明 示例
    订阅 已默认选择当前订阅。 my-subscription
    资源组 选择包含要导出配置的应用服务的资源组。 my-resource-group
    资源 选择要导出配置的应用服务。 my-app-service
  6. (可选)填写窗体的下一部分:

    参数 说明 示例
    移除前缀 可选。 如果指定,将从包含该前缀的所有导出键值的键名中移除它。 TestApp:
  7. 选择“应用”以继续导出。

你将截至 2022 年 7 月 28 日上午 12 点的键值从应用程序配置存储区导出到了应用服务资源的应用程序设置,键名以 TestApp: 开头,标签为 prod。 前缀 TestApp: 已从导出的键名中去除。

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

应用服务配置设置的屏幕截图。在应用服务(门户)中导出的应用程序配置参考。

错误消息

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

  • 禁止对存储区进行公共访问,或者从不在存储区专用终结点配置中的专用终结点进行访问。 如果应用程序配置存储区已启用专用终结点,则默认情况下只能从配置的虚拟网络中访问它。 确保运行 Azure 门户或 CLI 的计算机已加入与专用终结点相同的虚拟网络。 如果刚刚启用对应用程序配置存储区的公共网络访问,请在重试前至少等待 5 分钟,以允许缓存刷新。

后续步骤