开发者社区 > 云原生 > Serverless > 正文

使用requests 库请求 fc函数计算报错怎么解决?

使用requests 库请求 fc函数计算报错怎么解决?post 请求 {'ErrorCode': 'MissingRequiredHeader', 'ErrorMessage': 'required HTTP header Date was not specified'}

展开
收起
三分钟热度的鱼 2024-08-21 19:31:21 80 0
1 条回答
写回答
取消 提交回答
  • 这是因为在调用需要身份认证的HTTP触发器的阿里云函数计算(Function Compute,简称FC)服务时,HTTP请求中缺少了必需的Date头部信息。
    在使用requests库发送POST请求时,您需要手动添加Date头部以符合函数计算的身份认证要求。您可以按照以下方式修改您的请求代码:
    import requests
    from datetime import datetime
    获取当前时间并格式化为RFC1123格式,这是HTTP头部中日期的标准格式
    now = datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT')
    url = "https://your-function-url.fcapp.run/your-action" # 替换为您的函数URL和Action
    headers = {
    'Date': now, # 添加Date头部

    如果还需要其他认证信息,如Authorization,也需要在此处添加

    }
    response = requests.post(url, headers=headers)
    print(response.text)
    这段代码首先获取了当前的UTC时间并按照RFC1123格式进行了格式化,然后在请求头中加入了Date字段。请确保您已经根据函数计算的要求对请求进行了正确的签名处理,如果您的函数配置了签名认证的话。如果还需其他认证信息,如使用AccessKey ID和AccessKey Secret进行签名,请参照函数计算的签名认证文档完成这部分内容的添加。
    注意,如果您是在本地调试或通过非阿里云控制台的方式调用函数,务必确保遵循函数计算HTTP触发器的认证机制和请求格式要求,以免因认证问题导致请求失败。此回答整理自钉群“【阿里函数计算客户【已满,加2群:64970014484】”

    2024-08-21 20:37:48
    赞同 6 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载