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

Azure Function嵌套HTTP路由PUT请求返回404问题求助

问题分析与解决指导

核心问题定位

从现象来看,HTTP协议下的PUT请求异常、HTTPS正常,且Azure门户测试正常(门户默认使用HTTPS),Postman通过HTTP调用PUT时要么返回404,要么返回GET请求的结果,根源是Azure App Service在HTTP到HTTPS强制重定向过程中,PUT请求的方法被转换为GET,导致无法匹配到对应的PUT触发器路由。

具体解决步骤

1. 配置HTTP重定向规则(保留原请求方法)

在Azure门户的函数应用中:

  • 进入配置 > 常规设置,确认HTTPS强制选项处于开启状态;
  • 进入配置 > 应用程序设置,添加以下两项应用设置:
    WEBSITE_REDIRECT_HTTP_TO_HTTPS = 1
    WEBSITE_USE_HTTPS = 1
    
    这两个配置会启用标准的HTTP到HTTPS重定向机制,确保重定向过程中保留原请求方法(避免PUT被转为GET)。

2. 验证函数路由与方法的唯一性

虽然本地测试正常,但Azure环境的路由匹配逻辑可能存在优先级差异:

  • 确保同路径的GET和PUT函数route配置完全区分,比如PUT函数路由为bike/{id}/like,对应的GET路由不要使用完全相同的路径;
  • 检查每个函数的function.json,确认methods数组仅包含对应方法,比如PUT函数的methods只能是["put"],GET函数只能是["get"],避免交叉配置。

3. 排查Postman请求配置

Postman的默认设置可能导致请求方法丢失:

  • 打开目标请求的设置面板,关闭自动跟随重定向选项,手动将请求协议改为HTTPS后重新测试;
  • 确认PUT请求的请求头包含Content-Type(如application/json),缺少该头可能导致路由匹配失败。

4. 检查函数运行时与扩展

  • 进入配置 > 常规设置,确认函数应用使用最新的Azure Functions运行时版本(建议使用~4);
  • 检查是否安装了自定义路由、认证类的非必要扩展,暂时禁用后测试是否恢复正常。

内容的提问来源于stack exchange,提问作者tribal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:45:34