从 aurora mysql 发送消息到 sqs

send messages from aurora mysql to sqs

我有两个 lambdas 和一个 SQS 队列。第一个 lambda 的目的是从 aurora MySQL 中选择产品 ID 并发送到 SQS。有超过 700 万个产品 ID。当第一个 lambda 将这些产品 ID 发送到 SQS 时,我启用了一个触发器来调用我的第二个 lambda。

我面临的问题是,由于 lambda 的时间限制,我的第一个 lambda 无法在一次调用中将所有产品 ID 发送到队列。我对其进行了测试,对于 1 次调用,它只能向 SQS 发送 100k 条记录。如果我再次 运行 它显然会再次选择相同的产品 ID。即使我在我的 lambda 中设置了一个限制和偏移量,然后在第一次调用之后我也必须更改偏移量以选择下一个 100k 记录,这有点乏味。我怎样才能使这个过程自动化?

您是否尝试过向 s3 写入一个 csv 文件,该文件存储您发送到 SQS 的最新 index/productid,您最终将在下一次 lambda 迭代开始时访问该文件?

下面是粗略的执行步骤:

  1. 从 s3
  2. 加载最新的 index/productid
  3. [您执行的任何其他过程]
  4. 在存储最新的 s3 上重写 csv 文件index/productid