适用于: ✔️ Front Door 标准版 ✔️ Front Door 高级版
Azure Front Door Standard 和 Premium 支持 规则集的批量规则更新。 此功能帮助您安全且可预测地更新规则集中的多个规则,确保所有规则变更同时应用或根本不应用。 批处理规则更新尤其适用于基础设施即代码(IaC)场景,如Terraform、ARM/REST、Azure CLI或PowerShell,这些场景需要确定性部署。
默认情况下,Azure Front Door 继续使用现有的规则管理模型以保持完全向后兼容。
在大型或复杂的规则集中,单独更新或重新排序规则可能导致:
- 更新期间的临时或不一致规则行为。
- IaC 工作流程中的部署失败或部署重试。
- 多次更新同时发生时的运营风险。
批处理规则更新通过在规则集层面一起应用规则变更来消除这些问题。
规则管理模式
Azure Front Door 在规则集层面支持两种规则管理模式。
经典规则更新(默认)
这种模式是现有的行为,也是所有客户的默认模式。 它最适合简单的配置或渐进式规则更改。
- 每条规则独立管理。
- 通过使用单独的规则创建、更新和删除操作来更新规则。
- 重新排序或批量编辑不是原子级的。
- 现有配置无需更改。
批量规则更新(选择启用)
该模式允许对规则集中的所有规则进行批量更新。 它最适合大型规则集、频繁重排和基于IaC驱动的部署。
- 请成套更新规则,不要单独更新。
- 所有规则更改要么全部成功,要么全部失败。
- 消除瞬态或部分规则状态。
- 使用安全、可重复自动化模式(Terraform、CLI、PowerShell)。
批处理规则更新的工作原理
规则集层面的批处理模式
通过创建启用批处理模式的规则集来启用批量更新。
- 明确地,选择在规则集层面启用批量模式。
- 批量模式创建后是不可变的。
规则宣告
启用批处理模式时:
- 按正确顺序添加、更新或删除规则。
- 该数组代表规则集的期望最终状态。
- Azure Front Door 会计算这些更改,并以批处理方式应用;该批次要么全部成功,要么全部失败。
向后兼容性
此功能完全向下兼容:
- 现有的规则集继续正常运作,无需更改。
- 默认行为保持不变。
- 您必须明确选择批量使用。
- 你需要创建一个新的规则集来更改模式。
选择正确的模式
| 情景 | 建议的模式 |
|---|---|
| 规则不多,偶尔更新 | Classic |
| 大型规则集 | Batch |
| 频繁重排 | Batch |
| Terraform / IaC 部署 | Batch |
| 仅限通过门户进行管理 | 经典版(或在需要时为批处理) |
重要注意事项
- 启用批处理模式后,你无法切换到经典模式。
- 切换模式时,创建新规则集并重新关联路由。
- 批处理作业强制执行规模和操作限制,以确保平台的可靠性。
批量规则集配额限制
每组规则集最大规则:每组规则最多可达100条,符合Azure订阅和服务限制、配额和约束。 然而,任何允许在路由覆盖下缓存的规则都算作两条规则。 例如,如果一个规则集包含99条规则,其中2条规则启用了缓存,有效规则数变为97 + (2 × 2) = 101,超过限制导致配置更新失败。
启用缓存时的批量更新考虑:如果一个规则集包含50条规则且所有规则都启用了缓存,有效规则数为50 × 2 = 100,达到规则集的限制。 试图在一次批次更新中替换全部50条规则失败,因为在操作过程中必须删除现有规则(计为100条) 才能 添加新规则,暂时超过配额。 推荐的做法是分两批,每批25条规则进行更新,以便在替换过程中保持在有效规则限制内。