为Azure Functions配置区域冗余

区域冗余使函数应用能够灵活应对Azure可用性区域中的问题,因此当数据中心或区域发生中断时,应用仍可用。 本文提供了根据托管计划将Azure Functions配置为区域冗余的分步指南。 有关可用区如何与 Azure Functions 配合使用的信息,请参阅 Azure Functions 的可靠性。

Azure Functions的可用性区域配置取决于 Functions 托管计划:

托管计划 支持级别 配置部分
弹性高级计划 GA 选择本文顶部的Premium。
消耗计划 n/a 消耗计划不支持。

注释

本文内容与当前选择的托管计划无关。 要选择其他套餐,请使用本文顶部的选择器。 有关所有托管计划的比较,请参见 Azure Functions 托管选项。

消费计划不支持区域冗余。 请考虑迁移到 高级计划 ,以获取可用性区域支持。

注释

本文内容与当前选择的托管计划无关。 要选择其他套餐,请使用本文顶部的选择器。 有关所有托管计划的比较,请参见 Azure Functions 托管选项。

关于专用(应用服务)计划区域冗余配置,请参见 “配置应用服务的可用区域”。

重要

在配置区域冗余之前,请查看 Azure Functions 中的可靠性 - 对可用性区域故障的复原能力中列出的要求和详细信息。

可以使用Azure CLI在现有弹性高级计划上启用或禁用可用性区域。 有关更多信息(包括有关 Elastic Premium 特有容量行为的重要详细信息),请参阅 在现有计划上启用区域冗余。

创建区域冗余函数应用

按照以下步骤创建区域冗余的高端计划和应用程序。

  1. 在 Azure 门户中,选择创建功能应用。 有关在门户中创建函数应用的详细信息,请参阅创建函数应用。

  2. 选择 “功能高级” ,然后选择 “选择”。

  3. 在 创建功能应用(功能高级版)中,在 基础 标签下,输入你功能应用的设置。 请特别注意下表中提到了区域冗余具体要求的设置(以下屏幕截图中也突出显示了这些设置)。

    设置 建议值 有关区域冗余的说明
    Region 首选支持的区域 您创建 Elastic Premium 计划时所在的区域。 选择支持可用区的区域。 有关支持区域冗余的 Azure Functions 高级计划的区域列表,请参阅Azure Functions 的可靠性 - 应对可用性区域故障的复原能力 - 要求。
    定价计划 弹性高级计划之一。 有关详细信息,请参阅可用的实例 SKU。 本文将说明如何在Premium计划中创建区域冗余应用程序。 区域冗余目前在消费计划中不可用。 有关应用服务计划的区域冗余的信息,请参阅 为应用服务配置可用性区域。
    区域冗余 已启用 此设置指定应用是否为区域冗余。 除非你选择支持区域冗余的区域,否则无法选择 Enabled ,如前所述。

    函数应用创建页的“基本信息”选项卡的屏幕截图。

  4. 在“存储”选项卡上,输入函数应用存储帐户的设置。 请特别注意下表中关于区域冗余的设置及其具体要求。

    设置 建议值 有关区域冗余的说明
    存储帐户 一个区域冗余存储帐户 正如 Azure Functions 可靠性指南中描述的,使用区域冗余存储账户来管理你的区域冗余函数应用。
  5. 在函数应用创建过程的其余步骤中,请照常创建函数应用。 在创建过程的其余步骤中,没有任何设置会影响区域冗余。

创建并部署区域冗余计划后,你在新计划中托管的任何功能应用都被视为区域冗余。

在现有计划中启用区域冗余

在为您的高级套餐托管应用启用区域冗余之前,请牢记以下重要考虑因素:

  • 弹性高级计划的 zoneRedundant 属性可更改,因此无需创建新计划即可切换可用性区域支持。

  • 与专用(App Service)计划不同,每个应用的弹性高级容量行为(sku.capacity)是由应用级设置决定的,而不只是由计划设置决定。

  • 要启用区域冗余,您必须在套餐和应用层面同时更新设置:

    级别 资产 所需的值 备注
    Plan zoneRedundant true 启用可用区分布
    Plan sku.capacity 2 或更高版本 设定预期的最小实例数
    应用(每个) minimumElasticInstanceCount 2 或更高版本 控制平面将计划 sku.capacity 设置为所有应用中 最高的 值。 仅仅设置 sku.capacity 并不能强制执行最低值,所以你还必须设置这个应用级别属性。
  • 当前无法通过门户为现有的 Elastic Premium 计划配置可用区冗余。

要在您的高级套餐应用中启用可用区冗余:

目前不支持,请选择其他标签页。

验证实例区域放置

启用区域冗余后,你可以通过Azure门户或Azure CLI确认你的函数应用实例是否分布在不同可用性区域。

在 Azure 门户中,进入你的函数应用。 在“设置” 下,选择“实例” 。 “ 实例” 页显示每个正在运行的实例及其放入的可用性区域。

故障排除

如果按照这些步骤操作后区域冗余仍未如预期工作,请检查以下项目:

  • 验证该区域是否支持适用于你的计划类型的可用区。 参见 Azure Functions 中的可靠性 - 需求。

  • 确保你的存储账户使用区域冗余SKU(ZRS或GZRS)。

  • 确认在每个应用中,minimumElasticInstanceCount 已设置为至少 2。

  • 关于规模单位和SKU要求相关的问题,请查看Azure 应用服务中可用性区域深度博客文章中的常见问题与解决方案部分。

后续步骤