12

亚马逊建议不要在 lambda 函数中包含大型库/依赖项。据我所知,SQLAlchemy 是一个相当大的 Python 库。你认为在 lambda 函数中使用它是个好主意吗?一种选择是将其作为 Lambda 层包含在所有相关的 Lambda 函数中。

无论如何,最好的做法是什么?

4

3 回答 3

1

无服务器函数是小型自包含函数。SQLAlchemy 是一个 ORM,它允许您像操作 python 中的对象一样操作数据库对象。如果您只是编写一些无服务器函数,那么您是数据库上的平均 CRUD 操作,您最好通过编写字符串并通过数据库驱动程序直接执行来编写 SQL(无论如何您都必须安装它) ,即使您使用的是 sqlalchemy)。如果您在 AWS Lambda 之上构建自己的框架,那么也许可以考虑使用 sqlalchemy。

于 2020-07-14T00:39:42.250 回答
0

根据我的阅读,SQLAlchemy 在内存缓存中执行它已读取的数据并将其用于将来的调用。根据您所做的,最好检查 SQLAlchemy 缓存策略,以便另一个 Lambda 不会使用 SQLAlchemy 更改第一个 lambda 下的数据。

于 2020-09-23T14:53:12.883 回答
-2
  • 你认为在 lambda 函数中使用 SQLAlchemy 是个好主意吗?

可以,但您可能需要先考虑AWS Dynamodb或其他选项。如果 SQL 是您的要求,那么您可以选择具有 SQL 兼容后端的RDS实例。在这种情况下,这完全取决于您的具体需求。这不是一般要求。

  • 无论如何,最佳做法是什么?

如果您只需要存储一些数据并将数据存储连接到 AWS Lambda,那么 DynamoDB 通常是一个不错的选择。如果您已经有一个关系数据库,或者如果您需要执行某些 SQL 查询,使用 SQL 比非关系模型更容易执行,那么 SQL 可能是首选。

于 2019-10-11T13:21:31.013 回答