当我想启动一些无服务器代码时,我使用AWS Lambda。但是,这次我的部署包大于250MB。
所以我无法在Lambda上部署它......
我想知道这种情况下的替代方案是什么?
我会质疑你的架构。如果您遇到AWS设计服务的方式(即lambda 250mb max size)的问题,那么您可能会以某种非预期的方式使用该服务。
我经常看到的反模式是人们将所有代码填充到一个函数中。与将所有代码部署到单个服务器的方式类似。这不是AWS lambda的用例。
你的功能做了一件事吗?如果没有,请将其重构为执行不同操作的不同功能。当您拆分为多个函数时,这可能有助于删除依赖关系。
您可以看到的另一件事是您可以用不同的语言编写函数(保持函数较小的另一个原因)。我曾经在python中拥有一个超过250mb的lambda函数。当我看着用node.js解决同样的问题时,我的函数大小降到了20mb。
一些你可以做的是在运行lambda函数之前你可以从s3桶下载依赖项到/ tmp文件夹,然后将它添加到python路径,它会给你额外的512MB,虽然你需要考虑一些下载时间lambda调用