亚马逊建议不要在 lambda 函数中包含大型库/依赖项。据我所知,SQLAlchemy 是一个相当大的 Python 库。你认为在 lambda 函数中使用它是个好主意吗?一种选择是将其作为 Lambda 层包含在所有相关的 Lambda 函数中。
无论如何,最好的做法是什么?
亚马逊建议不要在 lambda 函数中包含大型库/依赖项。据我所知,SQLAlchemy 是一个相当大的 Python 库。你认为在 lambda 函数中使用它是个好主意吗?一种选择是将其作为 Lambda 层包含在所有相关的 Lambda 函数中。
无论如何,最好的做法是什么?
无服务器函数是小型自包含函数。SQLAlchemy 是一个 ORM,它允许您像操作 python 中的对象一样操作数据库对象。如果您只是编写一些无服务器函数,那么您是数据库上的平均 CRUD 操作,您最好通过编写字符串并通过数据库驱动程序直接执行来编写 SQL(无论如何您都必须安装它) ,即使您使用的是 sqlalchemy)。如果您在 AWS Lambda 之上构建自己的框架,那么也许可以考虑使用 sqlalchemy。
根据我的阅读,SQLAlchemy 在内存缓存中执行它已读取的数据并将其用于将来的调用。根据您所做的,最好检查 SQLAlchemy 缓存策略,以便另一个 Lambda 不会使用 SQLAlchemy 更改第一个 lambda 下的数据。
可以,但您可能需要先考虑AWS Dynamodb或其他选项。如果 SQL 是您的要求,那么您可以选择具有 SQL 兼容后端的RDS实例。在这种情况下,这完全取决于您的具体需求。这不是一般要求。
如果您只需要存储一些数据并将数据存储连接到 AWS Lambda,那么 DynamoDB 通常是一个不错的选择。如果您已经有一个关系数据库,或者如果您需要执行某些 SQL 查询,使用 SQL 比非关系模型更容易执行,那么 SQL 可能是首选。