[英]creating s3 bucket and folders inside it using node js in aws lambda function
[英]Storing node module on S3 bucket for AWS Lambda
我开发了一个基于 nodejs 的函数/程序,并希望在 AWS Lambda 上运行它。 问题是大小大于 50MB,AWS Lambda 支持直接 function 代码小于 50MB。
主要在我的代码上,节点模块为 43MB,实际代码约为 7MB。 那么有什么方法可以将我的节点模块与代码分开,也许我们可以将节点模块存储在 S3 存储桶中,然后在 AWS Lambda 上访问它? 任何的意见都将会有帮助。 谢谢
PS:由于一些依赖问题,我无法将此 function 作为 Lambda 上的 Docker 图像运行。
如果您不想或不能使用 Docker 打包,您可以 zip 将您的 node_modules 放入 S3 存储桶中。
然后,您的handler
(或包含您的处理程序的模块)可以下载 zip 存档并将文件提取到/tmp
。 然后,您从那里require()
您的模块。
上述描述并非 100% 准确,因为有很多方法可以做到这一点。 但这是一般的想法。
这是zappa
的一种部署方法,一种用于将 Python/Django 应用程序部署到 AWS Lambda 的工具,早在 Lambda 中允许 docker 容器之前就已经支持。
您可以使用非常适合您的用例的lambda 层。 Sometime ago, we need to use facebook sdk for one of our project and we created a lambda layer for the facebook sdk(32 mb) and then the deployment package became only 4 KB.
使用层可以更快地使用 AWS 无服务器应用程序 Model (AWS SAM) 或无服务器框架部署应用程序。 通过将运行时依赖项从 function 代码移动到层,这有助于
reduce the overall size of the archive
。
单个 Lambda function 最多可以使用five layers
。 总解压缩 function 和所有层的最大大小为250 MB
,这远远超出了您的限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.