You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建Function App Slot时报503错误问题咨询

ASE v3 部署函数应用插槽卡住超时问题解决方案

这个问题由Azurerm provider旧版本已知bug和ASE子网网络规则配置不当两个原因共同导致,和ASE v3本身的功能配置无关,按以下步骤排查修复即可:

1. 升级Azurerm Provider修复轮询逻辑缺陷

你当前使用的azurerm 3.12.0为2022年发布的早期版本,针对ASE v3托管的Windows函数应用插槽存在明确的状态轮询bug:

  • 插槽创建完成后,ASE内部需要1~5分钟完成应用配置初始化,这期间查询备份配置、日志配置的管理接口会临时返回404/503状态码
  • 旧版本provider没有针对这类临时初始化错误做退避重试,直接判定资源创建超时失败,哪怕资源实际已经在Azure门户创建完成
  • 后续执行terraform plan时,状态刷新逻辑会重复触发相同的错误调用,导致流程卡住

将azurerm provider升级到3.49.0及以上的3.x稳定版本即可修复该逻辑问题,新版本会正确等待ASE内部资源初始化完成,不会将临时的404/503响应判定为永久错误。

2. 校验ASE v3所在子网的网络规则

如果升级provider后仍然出现503错误,说明子网绑定的NSG或自定义路由阻断了Azure控制平面的管理流量,ASE v3子网必须满足以下网络要求:

  • 不要为子网配置0.0.0.0/0下一跳为虚拟网络设备/本地网络的强制隧道路由,如果必须启用强制隧道,需要为AzureWebManagement服务标签配置单独的用户自定义路由,下一跳类型设置为Internet
  • 子网关联的NSG必须放通AzureWebManagement服务标签的入站、出站流量,同时不要阻断1587管理端口的访问,否则Azure Web资源提供程序无法连接到ASE内部的应用实例查询配置,会持续返回503错误
  • 确认函数应用使用的存储账号已放通ASE子网的访问权限(如果开启了存储防火墙),该问题当前报错为Web管理接口错误,此项优先级较低可后续校验

3. 修复当前已卡住的Terraform状态

由于当前状态文件中残留了创建失败的插槽资源记录,升级provider后需要先清理脏状态:

  1. 在Azure门户确认目标函数应用插槽已正常创建完成,无处于"创建中"的残留状态
  2. 执行terraform state rm azurerm_windows_function_app_slot.poc_fas将卡住的插槽资源从本地状态文件中移除
  3. 执行导入命令将已存在的插槽资源纳入状态管理,将命令中占位符替换为你实际的订阅ID即可:
terraform import azurerm_windows_function_app_slot.poc_fas "/subscriptions/<你的订阅ID>/resourceGroups/iac_poc_rg/providers/Microsoft.Web/sites/poc-fa/slots/poc-fa-slot"
  1. 后续执行terraform plan/terraform apply即可正常运行,不会再出现卡住的问题

补充说明:ASE v3不需要针对函数应用配置额外的特殊参数,只要网络规则满足管理流量通行要求,部署逻辑和普通公网App Service Plan完全一致。

内容的提问来源于stack exchange,提问作者Billy L.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:48:16