aws lambda - 在超过dynamodb容量时处理代码

时间:2016-05-09 20:01:21

标签: amazon-web-services amazon-dynamodb aws-lambda amazon-sqs

我的lambda函数包含一些包含对dynamodb的查询的代码。执行查询后,lambda将继续执行其余代码,该代码基于该查询的结果。如果我超过dynamodb的容量限制会怎么样?我可以将查询推送到SQS并稍后处理它,但之后我将无法继续执行lambda。另一个解决方案是重试每个失败的查询,但如果dynamodb非常繁忙,我的lambda可能会超过5分钟的限制。似乎是一个双输的局面。你会做什么?

1 个答案:

答案 0 :(得分:0)

最容错的解决方案是解除查询和处理结果。

  1. 不是立即处理结果,而是将结果写入另一个SQS队列并发送SNS通知。

  2. 将处理移至第二个Lambda函数。这个新功能可以由SNS通知触发。它可以读取结果队列并处理任何待处理的消息。

  3. 修改原始函数以排队任何失败的查询以供日后使用。