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

在Azure Data Factory调用Azure Function Apps失败,提示流已被消耗

解决Azure Data Factory调用Python Azure Function时的"流已被消耗"错误

排查方向1:检查Python Function的请求处理逻辑

Python的req对象(如azure.functions库的HttpRequest)的请求流仅能被读取一次,若代码中重复读取请求体,就会触发该错误:

  • 避免同时使用req.get_json()和req.get_body(),二者都会消耗流
  • 不要多次调用req.get_json(),需重复使用时先将结果存入变量

错误示例代码:

def main(req: HttpRequest) -> HttpResponse:
    # 第一次读取流
    data1 = req.get_json()
    # 第二次读取触发错误
    data2 = req.get_body()
    return HttpResponse("OK")

修正后代码:

import json
from azure.functions import HttpRequest, HttpResponse

def main(req: HttpRequest) -> HttpResponse:
    # 仅读取一次请求流并存储
    req_body = req.get_body()
    data1 = json.loads(req_body)
    # 直接使用已读取的变量,不重复读取流
    data2 = req_body
    return HttpResponse("OK")

排查方向2:检查ADF活动的请求配置

  • 确认ADF的Azure Function活动中,未重复传递请求体或配置多次读取相关参数
  • 若开启启用批处理,需验证Function的批处理逻辑是否正确处理请求流,避免重复读取

排查方向3:检查Function App的运行时与依赖包

  • 确认Python运行时版本是否近期有更新(如从3.8升级到3.10),部分版本对请求流的处理逻辑可能有变化
  • 检查azure-functions包版本,尝试回退至之前正常运行的版本,示例命令:
pip install azure-functions==1.14.0 --target=".python_packages/lib/site-packages"

排查方向4:重置Function App实例

实例运行环境可能出现异常,可在Azure门户执行以下操作:

  • 直接重启Function App
  • 进入配置 -> 常规设置,点击重置清除实例缓存状态

内容的提问来源于stack exchange,提问作者Đặng Việt Khánh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:24:53