【发布时间】:2017-07-04 10:28:57
【问题描述】:
我正在使用 WhiteNoise 和 Zappa。
Zappa 建议尽可能缩小项目规模:
...吃掉你的应用函数的内存空间 (source)
确实,对于超过 50MB 的项目,您需要设置 slim_handler=true,这会带来轻微的性能损失。
WhiteNoise 建议将您的静态文件放在您的服务器上,例如 Amazon Cloudfront 来访问和缓存这些文件。
这里的缓存 22 是创建的压缩 WhiteNoise 静态文件的许多版本可能导致静态包 > 100MB(在我的情况下)。
我不知道如何在这里进行。选项有:
- 手动将 WhiteNoise 的静态内容推送到 S3 存储桶并让 Cloudfront 以此为源,不要将 100MB 上传到 Amazon Lambda。
- 看看我能否让 Zappa 将静态内容捆绑到 S3(并从应用程序本身中删除静态内容)。随着 Zappa 上传 Zip,也许这是一个更快的选择。
有什么想法吗?谢谢。
【问题讨论】:
-
这是个好问题。部分问题是 Django 将文件的散列和非散列版本都保存在 STATIC_ROOT 中。最重要的是,您在 STATICFILES_DIRS 中拥有原始文件,因此您至少拥有三个副本以及压缩版本。我将在即将发布的 WhiteNoise 版本中研究减轻这种情况的方法。也可以通过在 Zappa 中定义 ZIP 回调来进行一些打包后清理,但我还没有研究过这个细节。
标签: python aws-lambda static-content