【问题标题】:AWS Lambda and SQS TriggerAWS Lambda 和 SQS 触发器
【发布时间】:2020-07-28 03:35:03
【问题描述】:

我正在使用 AWS 和 SES 通过 lambda 函数使用 NodeJs 发送电子邮件和短信,我需要进行超过 1k 或 500 次 REST API 调用,平均调用需要 3 秒来执行单个 lambda 函数请求,因此我需要处理多个请求在单个请求中,这样我们就可以节省账单,因为每个请求都会生成 lambda 触发器账单。

  1. AWS SQS 接收消息限制为 1 到 10 条消息接收 SQS Limit Number of message

    我的问题是我们如何在一次 AWS lambda 函数触发器上处理多条消息,以便我们可以节省账单,因为每个 API 请求都会创建一个 MySQL 连接,如果我为 1k 执行此操作,它会创建 1k mysql 连接,并且它会在执行时使 MySQL 崩溃

【问题讨论】:

  • 一个问题,您在查询中从 MySQL DB 获取什么?

标签: javascript node.js amazon-web-services aws-lambda amazon-sqs


【解决方案1】:

我对此的看法是cloudwatch scheduled event 每 10 分钟触发一次 lambda,并处理 SQS 池上的所有内容,而不是在收到消息时触发它。

【讨论】:

    【解决方案2】:

    如果我为 1k 执行此操作,则每个 API 请求都会创建一个 MySQL 连接,它会创建 1k mysql 连接,并且在执行时会导致 MySQL 崩溃

    通常使用两种方法。

    1. Execution context reuse。您打开与 db 在您的 lambda 处理程序之外的连接。 lambda 我们很有可能为您的下一个请求重用相同的执行上下文,因此您可以重用以前打开的连接。

    2. Amazon RDS Proxy。代理“允许应用程序汇集和共享与数据库建立的连接,从而提高数据库效率和应用程序可扩展性”。

    除此之外,RDS 可以处理的连接数超过 1000。列出了连接数的上限:

    【讨论】:

      猜你喜欢
      • 2020-05-17
      • 2021-03-28
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2020-10-15
      • 1970-01-01
      • 2020-02-15
      相关资源
      最近更新 更多