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

使用CDK构建Python自定义Lambda层后,本地SAM测试遇模块导入错误

解决Python Lambda层本地SAM测试导入失败问题

核心原因:Lambda层目录结构不符合要求

Lambda Python运行时会自动将层中python目录下的内容添加到Python的sys.path中,你的共享层直接把模块放在根目录,导致运行时无法识别。

步骤1:调整共享层目录结构

将现有文件移动到python子目录下,最终目录结构应为:

./lambda-functions/shared-layer/
└── python/
    ├── boto3/
    └── my_shared_functions.py

步骤2:验证CDK层配置(JavaScript)

确保CDK代码中层的code路径指向包含python子目录的shared-layer目录:

const sharedLayer = new lambda.LayerVersion(this, 'SharedLayer', {
  code: lambda.Code.fromAsset('./lambda-functions/shared-layer'),
  compatibleRuntimes: [lambda.Runtime.PYTHON_3_9], // 需与Lambda函数运行时版本匹配
  description: 'Shared layer with common functions',
});

步骤3:重新生成CloudFormation模板

执行命令更新模板,确保层的配置生效:

cdk synth --no-staging my-lambda-stack > template.yml

步骤4:SAM本地测试的关键检查

  • 执行sam build后,查看.aws-sam/build/目录下的层文件是否被正确复制到函数的opt/python路径下(Lambda运行时会将层挂载到/opt/python)。
  • 确认Lambda函数的运行时版本与层的兼容运行时完全一致。
  • 检查函数代码中的导入语句:直接使用import my_shared_functions即可,无需添加路径前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:45:55