Aws lambda 如何减少无服务器部署的大小?
我正在使用无服务器框架部署aws lambda函数。我的问题是每次我部署sls时都会部署一个(44MB)Aws lambda 如何减少无服务器部署的大小?,aws-lambda,serverless-framework,serverless,Aws Lambda,Serverless Framework,Serverless,我正在使用无服务器框架部署aws lambda函数。我的问题是每次我部署sls时都会部署一个(44MB)sls deploy-f any_fn。当有一个node\u modules文件夹(可能很大)时,我也遇到过类似的问题 是否有一种方法可以通过只上传一次公共文件(以及所有功能)来减少上传大小?因为现在它一次又一次地压缩和部署同一个二进制文件,尽管它从未改变。没有办法按照你的建议去做。AWS Lambda要求您每次上载整个包,包括所有依赖项。所有内容都必须位于部署到Lambda的zip文件中。这
sls deploy-f any_fn
。当有一个node\u modules
文件夹(可能很大)时,我也遇到过类似的问题
是否有一种方法可以通过只上传一次公共文件(以及所有功能)来减少上传大小?因为现在它一次又一次地压缩和部署同一个二进制文件,尽管它从未改变。没有办法按照你的建议去做。AWS Lambda要求您每次上载整个包,包括所有依赖项。所有内容都必须位于部署到Lambda的zip文件中。这是我的解决方案:
exports.handler
,因此代码将只执行一次(对于
容器)李>
这只允许您部署小文件。我想到了一种方法,但如果可行,需要一些输入。如果我创建一个无服务器代理函数,即使用无服务器创建的lamba函数,该函数接受一个文件作为输入参数,该怎么办。然后,此函数将此输入文件和静态文件(来自S3 bucket)组合在一起,然后使用
AWS.Lambda
nodejs API实际部署此函数。通过这种方式,我只发送函数更改,其余的部署是通过代理lambda函数完成的,用静态文件创建我的新lambda函数。这有什么意义吗?我知道这需要很多工作,但它能工作吗?如果你只是想找一些能为你管理部署的东西,这样你就不必从本地计算机上构建和上传最终的软件包,那么你可以使用像AWS CodePipeline这样的持续集成/持续交付服务。谢谢你。。我想我将开始研究如何使用AWS codepipeline将lambda函数和所有这些静态资产部署到AWS lambda。另外,按照此功能请求将S3传输加速添加到Serverless:您能告诉我们更多关于您的函数及其依赖项的信息吗?从那以后,可能有办法缩小它的大小。@dashmug我已经两次遇到这个问题,一次使用这个项目(44MB),另一次使用这个项目(24MB)。不知何故,这不存在安全问题吗?@serdarsenay问题在哪一部分?如果您引用s3 bucket,那么将其定义为private应该不是问题。AWS已通过PCI DSS认证,包括服务S3。这是最好的答案,向上投票,非常感谢