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

导入或导出配置数据

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

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

导入数据

导入会将配置数据从现有源引入应用配置存储区。 使用导入函数将数据迁移到应用配置存储或聚合来自多个源的数据。

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

从配置文件导入数据

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

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

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

    Azure 门户的屏幕截图,导入文件。

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

  3. 使用以下参数填写表单:

    参数 Description Example
    文件类型 选择要导入的文件类型:YAML、属性或 JSON。 JSON
  4. 单击“ 浏览 ”按钮,然后选择要导入的文件。

  5. 填写表单的下一部分:

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

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

从应用配置存储区导入数据

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

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

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

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

    Azure 门户的屏幕截图,从应用配置存储区导入。

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

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

    参数 Description Example
    Subscription 默认情况下,已选择当前订阅。 my-subscription
    资源组 选择一个包含应用配置存储及需导入配置的资源组。 当前资源组默认处于选中状态。 my-resource-group
    Resource 选择包含要导入的配置的应用配置存储区。 my-other-app-config-store
  4. 填写表单的下一部分:

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

您于 2021 年 1 月 28 日凌晨 12 点从应用程序配置存储中导入了键值,其中键名称以 test 开头,标签为 prod。 键名称带有TestApp:前缀。 所有导入的键值都分配了标签 new 和内容类型 application/json

从 Azure 应用服务导入数据

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

注释

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

通过 Azure 门户:

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

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

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

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

    参数 Description Example
    Subscription 默认情况下,已选择当前订阅。 my-subscription
    资源组 选择包含要导入的配置的应用服务的资源组。 my-resource-group
    Resource 选择包含要导入的配置的应用服务。 my-app-service
  4. 填写表单的下一部分:

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

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

从 Azure Kubernetes 服务 ConfigMaps 导入数据

按照以下步骤从 Azure Kubernetes 服务 ConfigMaps 导入键值。 门户对此功能的支持正在开发中,请使用 Azure CLI 从 AKS 导入。

Azure 门户对此功能的支持正在开发中。

导出数据

将存储在应用配置中的配置数据导出到另一个目标。 例如,使用导出函数将数据从应用程序配置存储保存到可在部署过程中嵌入到应用程序代码中的文件。

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

将数据导出到配置文件

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

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

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

    Azure 门户的屏幕截图,导出文件

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

  3. 使用以下参数填写表单:

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

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

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

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

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

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

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

    Azure 门户的屏幕截图,从应用配置存储区导出。

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

  3. 使用以下参数填写表单:

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

    参数 Description Example
    Subscription 默认情况下,已选择当前订阅。 my-subscription
    资源组 选择包含要导出配置的应用配置存储的资源组。 当前资源组默认处于选中状态。 my-resource-group
    Resource 选择要导出配置的应用配置存储区。 my-other-app-config-store
  5. 填写表单的下一部分:

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

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

将数据导出到 Azure 应用服务

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

注释

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

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

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

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

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

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

  4. 使用以下参数填写表单:

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

    参数 Description Example
    Subscription 默认情况下,已选择当前订阅。 my-subscription
    资源组 选择包含要导出配置的应用服务的资源组。 my-resource-group
    Resource 选择要导出配置的应用服务。 my-app-service
  6. (可选)填写表单的下一部分:

    参数 Description Example
    删除前缀 可选。 如果指定,将从包含该前缀的所有导出键值的键名称中删除。 TestApp:
  7. 选择 “应用” 以继续导出。

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

如果选中了将键值导出为引用的框,则导出的键值将指示为应用服务资源配置设置的“源”列中的应用配置引用。

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

错误消息

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

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

后续步骤