我一直在尝试将 python、numpy 和 pytz 作为层添加到 AWS Lambda 中,而不是使用我的 .py 文件将其压缩并扔到 AWS 中。我能够遵循多个教程,但都失败了。
如果我要使用 pandas、numpy 或 pytz 来实现任何功能( AWS Lambda with Pandas and NumPy - Ruslan Korniichuk - Medium ),我会遵循本指南。所以这很好,但如果我的功能需要等情况发生变化,我不想每次都重新创建一个 zip。尤其是随着我公司的发展。我们只是尝试使用 Lamba 自动执行一些任务,使用 Cloudwatch 定期运行作业。没什么了不起的,我知道可能有 S3 和其他实例的路线。但是,我已经能够成功地为除 Pandas、Numpy 和 Pytz 之外的其他库创建层。
所以,我担心这种方法的可扩展性。我在 mac 上工作,但我不知道还能做什么:我尝试过使用 Docker,我尝试过从轮子构建。是否有任何可行的教程可以详细解释如何执行此操作?
这是我尝试过的一些教程。是的,这并不意味着我正确地遵循了它们,但最终我没有成功完成其中的大多数:
你说出它的名字,我可能已经完成了完成这项任务的步骤,尤其是在这些文章中。还有很多 Stack 问题评论,非常有帮助和洞察力。
提前感谢您的任何建议,只是在这里学习!
最佳答案
这可能不是您想听到的答案,但老实说,将某些编译库放入 lambda 层的痛苦足以让我的公司停止使用它们。相反,我们倾向于将 fargate 或 ECS 与 docker 容器一起使用。
除了为 lambda 编译包的问题外,我们还遇到了 lambda 最大大小的主要问题。我们经常达到这个上限,并且不得不越来越多地删除文件以使其适合。
更新:AWS 现在允许您从 ECR 中的容器运行 Lambda,这很好地解决了这个问题。
关于python - AWS Lambda、Python、Numpy 等作为层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218139/