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

AWS Lambda调用SQS死信队列重驱任务报AttributeError异常

解决AWS Lambda中调用SQS start_message_move_task报AttributeError的问题

问题原因

Lambda环境中的botocore版本大概率低于本地环境。start_message_move_task的API实现由botocore提供,即使boto3版本显示为1.34.9,若botocore版本未达到支持该接口的要求(对应boto3 1.34.44所需的botocore版本),就会出现找不到方法的错误。而你的本地环境中,botocore版本刚好满足要求,所以代码能正常执行。

解决方案

1. 打包自定义boto3/botocore到Lambda层

  • 本地创建Python 3.8虚拟环境并安装符合要求的依赖:
    python3.8 -m venv lambda-env
    source lambda-env/bin/activate
    pip install boto3>=1.34.44 botocore>=1.34.44
    deactivate
    
  • 进入lambda-env/lib/python3.8/site-packages目录,将所有文件打包为ZIP包,创建Lambda层并关联到你的目标函数。

2. 升级Lambda Python运行时版本

Lambda的Python 3.9及以上版本默认携带的boto3版本更高,比如Python 3.10默认的boto3版本通常在1.34.44以上,直接切换运行时版本即可解决依赖版本问题,无需额外打包依赖。

3. 验证运行环境的依赖版本

在Lambda函数中添加以下代码,打印实际运行环境的boto3和botocore版本,确认版本是否匹配:

import boto3
import botocore
print(f"boto3版本: {boto3.__version__}")
print(f"botocore版本: {botocore.__version__}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:27:36