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

如何用Python实现HTTP触发的Azure函数流式返回结果?

在Azure Functions中实现流式响应封装

Azure Functions的Python运行时不支持直接返回生成器作为响应体,必须确保响应的每个片段是字符串或字节类型。以下是调整后的可运行代码示例:

import azure.functions as func

def main(req: func.HttpRequest) -> func.HttpResponse:
    request = req.get_json()

    def generate_stream():
        # 替换为真实流式API的调用逻辑
        for chunk in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
            # 将数字chunk转为字符串,确保符合Azure的响应类型要求
            yield f"{chunk}\n"

    return func.HttpResponse(
        generate_stream(),
        mimetype="text/plain",
        headers={"Transfer-Encoding": "chunked"}
    )

关键注意事项

  • 响应片段类型限制:生成器产出的内容必须是字符串或字节,不能是数字、对象等其他类型,否则会触发运行时错误
  • 流式响应配置:通过传入可迭代的生成器给HttpResponse,并设置Transfer-Encoding: chunked头,Azure会自动处理分块响应的发送
  • 自定义内容类型:如果返回JSON格式的流式数据,可将mimetype改为application/json,同时确保每个生成的chunk是合法的JSON片段(例如yield json.dumps({"data": chunk}) + "\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:01:26