在 Azure Functions 中的区域之间移动函数应用

本文介绍如何将 Azure Functions 资源移动到不同的 Azure 区域。 可能会出于以下原因之一将资源移动到另一个区域:

  • 利用新的 Azure 区域
  • 部署仅在特定区域可用的功能或服务
  • 满足内部策略和治理要求
  • 响应容量计划要求

Azure Functions 资源是特定于区域的,不能跨区域移动。 必须在目标区域中创建现有函数应用资源的副本,然后将函数代码重新部署到新应用。

如果需要最短停机时间,请考虑在两个区域中运行函数应用以实现灾难恢复体系结构:

先决条件

  • 确保目标区域支持 Azure Functions 和要移动其资源的任何相关服务
  • 有权访问要迁移的函数的原始源代码

准备

标识源区域上使用的所有函数应用资源,其中可能包括以下内容:

函数可以使用触发器或绑定连接到其他资源。 有关如何跨区域移动这些资源的信息,请参阅相应服务的文档。

还应该能够从现有资源导出模板

移动

将函数应用部署到目标区域并查看配置的资源。

重新部署函数应用

如果有权访问在源区域中创建函数应用的部署和自动化资源,请在目标区域中重新运行相同的部署步骤以创建和重新部署应用。

如果只能访问源代码而不能访问部署和自动化资源,则可使用任何可用的部署技术在目标区域上部署和配置函数应用。

查看配置的资源

如果在部署期间未配置资源,请查看并配置在上述准备步骤中在目标区域中标识的资源。

移动注意事项

  • 如果部署资源和自动化没有创建函数应用,请在目标区域中在新的托管计划中创建相同类型的应用
  • 函数应用名称在 Azure 中全局唯一,因此目标区域中的应用不能与源区域中的应用名称相同
  • 需要检查将函数应用连接到依赖项的引用和应用程序设置,并在需要时进行更新。 例如,移动函数调用的数据库时,还必须更新应用程序设置或配置以连接到目标区域中的数据库。 一些应用程序设置(例如 Application Insights 检测密钥或函数应用使用的 Azure 存储帐户)可能已经在目标区域中配置,不需要更新
  • 请记住在目标区域验证配置并测试函数
  • 如果配置了自定义域,请重新映射域名

清理源资源

移动完成后,从源区域中删除函数应用和托管计划。 即使高级计划或专用计划中的函数应用本身未运行,也需要为其付费。