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

如何正确配置Azure Functions的HTTP触发器以调用第三方REST API?

解决Azure Function HTTP触发器的get_json()参数错误问题

错误根源

你碰到的TypeError是因为Python版Azure Function里,HttpRequest.get_json()方法不需要传入任何参数,但你调用时额外传了参数(比如照搬Flask框架里get_json(force=True)的写法,而Azure Functions的实现逻辑不同)。

正确的HTTP触发器代码示例

以下是适配第三方API更新通知的基础HTTP触发器结构,包含正确的JSON获取方式:

import azure.functions as func
import logging

# 你的独立业务逻辑代码(原可正常运行的代码)
def handle_user_list_update(user_data):
    # 这里写你处理用户列表更新的逻辑
    logging.info(f"处理用户更新数据: {user_data}")
    return {"status": "success", "message": "用户列表更新已处理"}

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('收到第三方API的更新通知请求')

    try:
        # 正确获取请求体JSON:无需传参
        req_body = req.get_json()
    except ValueError:
        return func.HttpResponse(
            "请求体不是有效的JSON格式",
            status_code=400
        )

    # 调用你的业务逻辑
    result = handle_user_list_update(req_body)

    return func.HttpResponse(
        str(result),
        mimetype="application/json",
        status_code=200
    )

关键注意事项

  • 确保第三方API以POST方式发送JSON格式的更新通知到你的Function URL
  • 在Azure门户配置HTTP触发器的授权级别:如果第三方不需要密钥验证,选择"匿名";否则使用"函数"或"管理员"级别,并将密钥提供给第三方
  • 若你的业务逻辑需要主动调用第三方API拉取用户列表(而非被动接收推送),可在main函数中直接调用你的独立代码,无需依赖请求体,此时可以处理GET请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:27:04