将消息从 aurora mysql 发送到 sqs

时间:2021-03-05 08:43:22

标签: java aws-lambda amazon-sqs amazon-aurora aws-aurora-serverless

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

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

1 个答案:

答案 0 :(得分:1)

您是否尝试向 s3 写入一个 csv 文件,该文件存储您发送给 SQS 的最新索引/产品 ID,您最终将在下一次 lambda 迭代开始时访问该文件?

以下是这些步骤的粗略实现:

  1. 从 s3 加载最新的索引/productid
  2. [您执行的任何其他流程]
  3. 在 s3 上重写 csv 文件以存储最新的索引/产品 ID