AWS Lambda - 删除 Python 包以加速部署和执行

AWS Lambda - removing Python packages to speed up deployment and execution

正在更新依赖于最初由另一位程序员编写的 Flask / zappa 的 AWS Lambda 函数。如果 Lambda 中的 运行 脚本未导入/使用 Python 模块,我可以从 requirements.txt 中毫无问题地删除它们吗?

AWS提供的例子file好像要求很少。我只是想确保 Cloudwatch 继续工作,我不会删除 AWS 隐式依赖的东西。

我正在考虑删除的一些包(因为 Python 脚本没有导入)包括:

即删除 pyarrowscikit-learn 将重新部署时间从 3 分钟减少到 2 分钟。 AWS Lambda 还在较短的执行时间内使用较少的 RAM。

很难说,因为依赖关系因应用程序而异。

据我所知,scikit-learn 是一个巨大的库,AWS 没有使用它。但是,如果您的应用程序或应用程序中的其他包将它用作依赖项,删除它可能会破坏您的应用程序。

同样pyarrow也被很多包使用。您的应用程序的某些包可能在内部使用它。

我不确定,但 boto3 也可以删除,因为它在 AWS 默认情况下始终可用。但您可能希望保留它,因为您将需要它用于 运行 本地应用程序。

对于所有其他包,我建议您使用 pipdeptree 创建包的依赖关系树 这将作为确定哪些可以删除的起点。