【发布时间】:2020-01-28 17:57:04
【问题描述】:
我正在尝试向 AWS Lambda 部署一个简单的脚本,该脚本将为网站生成关键的 CSS。运行这个无服务器似乎很有意义(但我找不到任何工作示例)。
问题在于包装尺寸。我正在尝试使用https://github.com/pocketjoso/penthouse。当我只是npm install penthouse 突然包大小超过300MB。 Lambda 的大小限制只有 250MB,不会上传。
有没有办法解决这个问题?也许即时下载顶层公寓?如果有,有什么例子吗?
在这种情况下,性能并不那么重要,因为自动化流程每天只会调用几次。
【问题讨论】:
-
也许使用 CDN 会有所帮助?虽然它与
penthouse无关,但更多的是与您在项目中拥有的node_modules的其余部分有关。您可以在此处查看penthouse的捆绑包大小:bundlephobia.com/result?p=penthouse@2.2.2 -
没错。我是 nodejs 的新手,但我的理解是
penthouse依赖于puppeteer,其中包括铬二进制文件,这使得包的大小增加。 -
我会说只使用 CDN。 unpkg.com/browse/penthouse@2.2.2
-
您考虑过 Lambda 层吗?这篇文章给出了很好的解释——medium.com/harrythegreat/…
-
@CarlMichaels 基本上创建 2 个图层。一种是铬,你可以使用这个:github.com/shelfio/chrome-aws-lambda-layer。另一个是 Penthouse - 您需要自己安装并作为图层导入。它在内部使用 Puppeteer 并用铬安装它 - 你不想要那个。设置 ENV 变量 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = true,设置后,Puppeteer 将在没有 chromium 的情况下安装,并且 Penthouse 足够小,因此可以作为图层导入。比使用第一层的铬github.com/pocketjoso/penthouse/blob/master/examples/…
标签: amazon-web-services aws-lambda