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

通过Python/boto3跨Lambda调用时遭遇未记录的HTTP 421错误求助

回答

HTTP 421 Misdirected Request本质是请求被发送到了无法处理该请求的服务器,在Lambda调用场景下,常见原因及解决方式如下:

  1. 区域不匹配
    这是最常见的原因:初始化boto3 Lambda客户端时指定的区域,与目标Lambda函数所在区域不一致。比如目标Lambda在us-east-1,但客户端用us-west-2初始化,导致请求发送到错误的区域端点,触发421。

    • 解决:确保客户端区域与目标Lambda区域完全一致:
      lambda_client = boto3.client('lambda', region_name='us-east-1') # 替换为目标Lambda的区域
      
  2. VPC端点配置错误
    如果调用方Lambda运行在VPC内且配置了Lambda VPC端点,端点的区域、策略或子网配置有误,会导致请求路由异常。

    • 解决:检查VPC端点的区域是否与目标Lambda匹配,端点策略是否允许lambda:InvokeFunction操作,且子网/安全组能正常访问端点。
  3. boto3/botocore版本过旧
    旧版本的botocore对部分区域的端点解析存在bug,导致请求被错误路由。

    • 解决:升级到最新版本:
      pip install --upgrade boto3 botocore
      
  4. 自定义DNS/代理干扰
    环境中的自定义DNS或代理设置,可能将Lambda端点解析到错误的IP,导致请求发送到无效服务器。

    • 解决:验证DNS能正确解析目标区域的Lambda端点(比如lambda.us-east-1.amazonaws.com),关闭不必要的代理或配置代理允许访问AWS服务。

另外,注意你代码中的json.dumps('{'foo': 'bar'})存在语法错误,单引号嵌套会导致报错,应该改为json.dumps({"foo": "bar"}),不过这不是触发421的原因,但会导致后续Payload解析失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:15:57