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

使用AWS CDK为Lambda添加Pandas Layer失败,报AttributeError错误

问题分析与解决

错误的核心原因是Lambda函数的Handler配置错误,导致Python导入模块时出现混淆:

从错误栈可见:

File "/var/task/pandas.py", line 5, in lambda_handler
    pd.show_versions()

但你的Lambda代码文件名为pandas_lambda.py,而你在CDK中配置的Handler是pandas.lambda_handler。这会让Lambda尝试在/var/task目录下寻找名为pandas.py的文件,而非正确的pandas_lambda.py。这个错误的模块名配置会覆盖Layer中真正的pandas库,导致调用pd.show_versions()时出现属性错误。

解决步骤

  1. 修正CDK中的Handler配置
    在pandas_stack.py的Lambda函数定义中,将handler参数的值从'pandas.lambda_handler'改为'pandas_lambda.lambda_handler':

    lambdaFn = _lambda.Function(
        self, 'lambda-function',
        runtime=_lambda.Runtime.PYTHON_3_11,
        code=_lambda.Code.from_asset('lambda'),
        handler='pandas_lambda.lambda_handler',  # 此处修改
        function_name='lambda_pandas_handler',
        description='Lambda function deployed using AWS CDK Python',
        layers = [lambdaLayer]
    )
    
  2. 清理Lambda目录下的冲突文件
    检查lambda目录中是否存在pandas.py或pandas.pyc文件,若有直接删除,避免和Layer中的pandas库产生命名冲突。

  3. 重新部署CDK栈
    执行CDK部署命令更新云端资源:

    cdk deploy
    
  4. 重新测试Lambda函数
    部署完成后再次测试,此时应该能正确导入Layer中的pandas库并执行pd.show_versions()。

额外验证点:

  • 确认layers/python/lib/python3.11/site-packages目录下确实包含pandas及其依赖库(如numpy等);
  • 确认Lambda运行时版本与Layer兼容运行时版本一致(均为Python 3.11),这一点你已配置正确。

内容的提问来源于stack exchange,提问作者Stephan N.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:52:42