node.js - 为什么我的 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 控制台中看到。我无法在本地重现该错误。
解决方案
事实证明,chmod -R 777 .
在压缩和上传 lambda 代码作为部署管道的一部分之前,我需要这样做。
我以前是chmod -R 744 .
,但这并没有减少它。
当我将依赖项作为node_modules
.
如果您知道所需的确切chmod
级别,请在下面发表评论。
推荐阅读
- java - 通过代码将视图添加到约束布局
- javascript - 无法在不依赖另一个标签的情况下显示 JavaScript / jQuery div 标签
- reactjs - Storybook 文档页面在描述中显示额外的 JSDOC 标记
- visual-studio-code - 根据系统的配色方案设置 VS Code 明暗主题
- tensorflow - 如何使用 TensorFlow 和 Yolov3 选择特定的 GPU?(张量流-GPU-2.3.1)
- python - 空闲外壳中烦人的空行
- php - PHP:计算自事件以来的天数和自午夜以来的秒数
- amazon-web-services - 带有 API 网关的 Amazon Cognito 身份
- angular - 在 firebase.json 中未检测到托管站点或目标
- javascript - 没有从firebase数据库内的返回中获取数据