ksh*_*ine 8 javascript amazon-web-services node.js aws-lambda aws-lambda-layers
我想在 AWS lambda 函数中使用 npm 包“请求”。
我正在尝试按照本文中概述的程序进行操作:https : //medium.com/@anjanava.biswas/nodejs-runtime-environment-with-aws-lambda-layers-f3914613e20e
我创建了这样的目录结构:
nodejs
? package-lock.json
? package.json
????node_modules
Run Code Online (Sandbox Code Playgroud)
我的 package.json 看起来像这样:
{
"name": "my-package-name",
"version": "1.0.0",
"description": "whatever",
"author": "My Name",
"license": "MIT",
"dependencies": {
"request": "^2.88.0"
}
}
Run Code Online (Sandbox Code Playgroud)
据我从文章中可以看出,我应该做的就是 run npm i,压缩目录,将其作为图层上传,然后将该图层添加到我的 lambda 函数中。
我已经完成了所有这些,但是当我尝试测试我的功能时,我得到的只是:
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'request'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
"trace": [
"Runtime.ImportModuleError: Error: Cannot find module 'request'",
"Require stack:",
...
Run Code Online (Sandbox Code Playgroud)
...好像从未添加过图层。无论是否添加图层,错误都完全相同。如果有某种权限问题需要解决,文章中没有任何内容表明这一点。
我尝试了一些不同的事情,例如我的 .zip 文件是否包含顶级目录“nodejs”或仅包含其内容。我试过用这样的文件添加"main": "index.js",到我的package.json, 中index.js:
export.modules.request = require('request');
Run Code Online (Sandbox Code Playgroud)
……无济于事。
我错过了什么?
ksh*_*ine 16
哦,我简直不敢相信只有这个!
.zip 文件的顶级目录必须完全命名为“ nodejs”!我使用了不同的名称,只是在这篇文章的文本中将其改回“nodejs”以使其更通用,但目录名称一直是真正的问题。
叹。
| 归档时间: |
|
| 查看次数: |
15864 次 |
| 最近记录: |