Heroku + AWS Lambda 混合

Heroku + AWS Lambda 混合

我目前有一个完全运行在Heroku

此 Web 应用需要大量计算能力和对多个外部 API 的访问在短时间内,如果用户没有活动,则什么也不做。

到目前为止,我有几个 worker 长时间处于闲置状态,但在活动很多时却不够用。结果,用户需要等待太长时间 + 我要为大多数时间处于闲置状态的 worker 付费。

为了解决这个问题,我正在考虑将这些工人转移到AWS Lambda。由于我对 AWS 以及任何类型的服务器配置都一无所知,因此我愿意将 Web 本身和数据库保留在 Heroku 上。

目前,worker 与数据库的交互非常多,既有读取,也有写入。因此,我正在考虑两种可能性:

  1. 让 AWS Lambda 中的工作程序直接连接到 Heroku 上的 SQL 数据库。然后它们应该能够运行SELECT ...INSERT ...查询 --> 这可能吗?我只发现这一页这个关于它,所以我不确定它是否足够容易设置(也许我没有使用正确的关键字来查找更多信息......?)

  2. 创建某种 API 来进行 Heroku 和 Lambda 之间的通信,这样对 SQL 数据库的实际访问就在 Heroku 上进行,而执行 SQL 查询的信息就是来回传递的。

这些可能性有意义吗?还有其他方法可以连接 AWS Lambda 和 Heroku 吗?

我也愿意接受任何其他想法。

答案1

我遇到了一个问题,或者目前仍遇到一个与 Lambda 相关的问题。

基本上,当 Lambda 的工作时间较长时,尤其是在维护与服务的连接时,它就会开始出现丢失连接的问题。我不确定这是否仅限于 AWS 之外的服务。就我而言,Lambda 调用的服务位于 AWS 之外,Lambda 无法执行我使用 Lambda 外部的相同 JS 脚本可以执行的操作,这表明我误用了 Lambda。

您可能遇到同样的问题,即您的 Lambda 尝试在 Heroku 上工作并可能超时。但这是我目前的假设。也就是说,在确定这一点之前不要使用 Lambda。

相关内容