问题描述
我一直在尝试使用Angular使用Polly,s3和lambda构建应用程序。 在测试lambda函数时,出现错误,说明了这一点:
{
"errorType": "Runtime.ImportModuleError","errorMessage": "Error: Cannot find module 'uuid/v1'\nRequire stack:\n- /var/task/handler.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js","trace": [
"Runtime.ImportModuleError: Error: Cannot find module 'uuid/v1'","Require stack:","- /var/task/handler.js","- /var/runtime/UserFunction.js","- /var/runtime/index.js"," at _loadUserApp (/var/runtime/UserFunction.js:100:13)"," at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)"," at Object.<anonymous> (/var/runtime/index.js:43:30)"," at Module._compile (internal/modules/cjs/loader.js:1137:30)"," at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)"," at Module.load (internal/modules/cjs/loader.js:985:32)"," at Function.Module._load (internal/modules/cjs/loader.js:878:14)"," at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)"," at internal/main/run_main_module.js:17:47"
]
}
解决方法
您需要创建一个包含您的功能代码和依赖项的ZIP存档。如果您使用Lambda API管理功能,或者需要包含AWS开发工具包以外的库和依赖项,则需要创建部署程序包。
如果您的功能依赖于JavaScript SDK以外的库,请使用NPM将它们安装到本地目录,并将其包含在部署包中。如果您需要比运行时中包含的版本更高的版本,或者为了确保将来不会更改版本,还可以包括JavaScript SDK。如果部署程序包大于50 MB,则必须使用Amazon S3。
Running Arbitrary Executables in AWS Lambda
Using Packages and Native nodejs Modules in AWS Lambda