首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zappa更新可以与来自Zappa包的输出包一起使用吗?

Zappa更新可以与来自Zappa包的输出包一起使用吗?
EN

Stack Overflow用户
提问于 2019-06-27 18:04:10
回答 2查看 650关注 0票数 1

我试图使用Zappa在AWS lambda上加载一个模型。问题是,Zappa创建并上传到S3的包的解压缩文件大小约为550 to,超出了限制。我使用的包之一是Spacy (一个非常大的NLP依赖项),我可以通过手动删除lang文件夹中未使用的语言来缩小这个包的大小。这样我就可以将解压缩的文件大小控制在500 can以下。问题是Zappa在部署和更新时会自动下载完整的Spacy版本(spacy==2.1.4:使用本地缓存的manylinux轮)。

我了解到我可以调用Zappa包,它将生成一个包,然后我可以自己上传。我所做的是解压缩生成的包并删除不必要的lang文件,然后将它压缩回原来的位置。我是否可以调用Zappa /Update并使用Zappa包创建的修改包和处理程序?这样,Zappa仍然可以处理部署。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-30 20:38:35

下面是我解决这个问题的方法,有两种方法:

  1. 第一种方法是简单地将依赖文件夹从网站包目录移动到根文件夹,然后在那里进行任何修改。这将迫使zappa在上传时不下载linux版本的依赖项。
  2. 更简单的解决方案是删除您修改的特定模块的*dist文件夹。移除这将迫使zappa绕过linux上车轮上的再下降模块;这意味着您的修改模块将在部署过程中打包。
票数 0
EN

Stack Overflow用户

发布于 2019-07-02 07:59:59

对我来说,有两件事解决了这个问题:

  1. AWS Lambda要求您的环境最大大小为50 of,但我们的打包环境将在100 of左右。对我们来说幸运的是,Lambda可以从亚马逊S3加载代码,而不会造成很大的性能损失(仅几毫秒)。

若要激活此功能,必须向zappa_settings.json中添加新行

代码语言:javascript
复制
"slim_handler": true
  1. 只使用和安装spacy,而不是语言包(python3 -m spacy download en)。之后,我手动地将语言包上传到S3,然后加载空间语言“模型”,类似于这里所描述的:Sklearn joblib load function IO error from AWS S3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56796521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档