AWS Lambda和SQS触发器

时间:2020-04-15 08:05:40

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

我正在使用AWS和SES通过使用NodeJ的lambda函数发送电子邮件和Sms,我需要进行1k或500多个REST API调用,平均调用需要3秒才能执行单个lambda函数请求,因此我需要处理多个请求在单个请求中,这样我们就可以节省生成每一个lambda触发帐单的费用。

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

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

2 个答案:

答案 0 :(得分:0)

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

通常采用两种方法。

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

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

Appart因此,RDS可以处理的连接数超过1000。列出连接数的上限:

答案 1 :(得分:0)

我认为这是一个cloudwatch scheduled event,例如每10分钟触发一次lambda,并处理SQS池中的所有内容,而不是在它收到消息时触发它。