首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在包依赖关系>500 on的AWS lambda上运行python代码?

如何在包依赖关系>500 on的AWS lambda上运行python代码?
EN

Stack Overflow用户
提问于 2019-04-01 21:36:39
回答 4查看 1.6K关注 0票数 6

需要的是,我必须在lambda上触发一个SageMaker端点来获得预测(这很容易),但是必须使用XGBoost和SHAP这样的包对变量的重要性进行额外的处理。

我能够到达端点,并获得可变的重要性使用SageMaker木星笔记本。现在,我想在AWS lambda上复制同样的东西。

1) 如何在AWS上运行python代码,其中包含Pandas、XGBoost和SHAP的包依赖项(总包大小大于500 on )。解压缩的部署包大小大于250 MB,因此lambda不允许部署。我甚至尝试使用Cloud9中的lambda函数,但由于大小限制,得到了同样的错误。我也尝试过lambda层,但没有运气。

2) 是否有一种方法可以在lambda上或通过lambda运行具有如此大的包的代码,绕过部署包大小限制250 MB

3) 是否有一种方法可以通过lambda触发SageMaker笔记本的执行,从而完成计算并将输出返回到lambda?

EN

回答 4

Stack Overflow用户

发布于 2019-04-01 22:21:24

尝试将依赖项上载到Lambda层。金融时报:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

票数 3
EN

Stack Overflow用户

发布于 2021-12-22 10:12:37

除了对依赖项使用多个层之外,您还可能希望通过linux *.so命令来减少strip文件,该命令从编译的对象文件中丢弃符号,而这些符号在生产中可能并不必要。

为了去除所有的*.so -

  1. 使用linux/docker容器访问依赖目录
  2. 到依赖项目录的cd
代码语言:javascript
复制
find . -name *.so -exec strip {} \;

将递归地对当前工作目录中的每个strip文件执行*.so命令。

它帮助我将依赖对象中的一个从94 7MB减少到只有7MB

票数 3
EN

Stack Overflow用户

发布于 2019-11-01 16:08:12

我发现对AWS大小的250 be限制是严格的。来自xgboost包的只有一个文件ibxgboost.so已经在140 MB左右,这只剩下110 MB用于其他所有东西。这使得AWS lambdas除了简单的“你好世界”之外什么都没用。作为一个丑陋的解决方案,您可以将xgboost包存储在s3上的某个地方,将其从lambda调用例程复制到/tmp文件夹,并指向您的python。允许的tmp空间稍微高一点-500 it,因此它可能会工作。不过,我不确定在lambda函数之间是否清除了/tmp文件夹。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55463916

复制
相关文章

相似问题

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