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

AWS CDK部署Lambda函数报错:无法找到指定资产路径

AWS CDK执行cdk synth提示Lambda资产不存在的排查方案

问题描述

尝试使用AWS CDK创建Lambda函数,执行cdk synth命令时提示资产不存在,但实际目标路径是存在的。

使用的代码:

cwd = os.getcwd()
aws_lambda.Function(self, "lambda_function",
     runtime=aws_lambda.Runtime.PYTHON_3_9,
     handler="index.handler",
     code=aws_lambda.Code.from_asset(os.path.join(cwd, "lambda_functions/lambda"))
)

项目目录结构:
CDK Directory

确认文件存在且错误信息显示的目录与预期一致,问题排查方向如下:

可能的原因及解决办法

  • 工作目录不匹配:os.getcwd()获取的是执行cdk synth时的终端工作目录,而非CDK栈文件所在的目录。如果你的栈文件不在项目根目录执行,就会导致路径拼接错误。建议改用__file__定位栈文件目录,再拼接相对路径:
from pathlib import Path

# 获取当前栈文件所在的目录
stack_directory = Path(__file__).parent
aws_lambda.Function(self, "lambda_function",
     runtime=aws_lambda.Runtime.PYTHON_3_9,
     handler="index.handler",
     code=aws_lambda.Code.from_asset(stack_directory / "lambda_functions/lambda")
)
  • 目录/文件权限不足:执行cdk synth的用户没有目标目录或文件的访问权限。在Linux/macOS下可通过以下命令调整权限:
chmod -R 755 lambda_functions/lambda
  • 目标目录为空或无有效文件:CDK的from_asset要求目标目录下至少包含一个可打包的文件(比如你指定的index.py)。确认lambda_functions/lambda目录下存在index.py,且文件名、路径拼写无误。

  • CDK缓存异常:CDK的缓存可能导致路径识别错误,清理缓存后重新执行:

cdk clean
cdk synth

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:33:27