首页 > 解决方案 > 为什么我的 lambda 无法识别 node_modules 中的依赖关系?

问题描述

我使用 Github Actions 创建了一个 lambda 管道。此管道的一部分包括将 lambda 文件和依赖项从我的 Github Actions 容器压缩并上传到 AWS。

当我调用我的 lambda 时,我遇到了导入错误:

{
    "errorType": "Runtime.ImportModuleError",
    "errorMessage": "Error: Cannot find module 'axios'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
    "stack": [
        ...
    ]
}

我的 lambda 文件夹结构是正确的,并且之前能够成功执行。我双重、三重、四重检查了我的package.json- axios 在那里。我什node_modules/axios至在 AWS Lambda 控制台中看到。我无法在本地重现该错误。

标签: node.jsamazon-web-servicesaws-lambda

解决方案


事实证明,chmod -R 777 .在压缩和上传 lambda 代码作为部署管道的一部分之前,我需要这样做。

我以前是chmod -R 744 .,但这并没有减少它。

当我将依赖项作为node_modules.

如果您知道所需的确切chmod级别,请在下面发表评论。


推荐阅读