使用AWS Lambda压缩异步操作

时间:2016-07-21 20:56:48

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

我正在尝试在调用Lambda函数时以特定方式更新DynamoDB。目前,每次调用lambda函数时,我都必须等待更新发生。这每次需要一整秒。有没有办法可以“发射并忘记”或者只是没有充分的来回时间计费? lambda表达式评估的几乎所有时间都发生在此异步时间内。我希望它每秒钟被调用十几次,所以将其减少90%就会很棒。

谢谢!

P.S。我正在用JavaScript编写,但我愿意切换到另一种语言来做到这一点(我对它们都很熟悉,而且这是一个不到100行的函数)

1 个答案:

答案 0 :(得分:0)

当您说等待更新时,是否表示您正在执行putItem,然后使用getItem进行轮询,直到返回您期望的值?

通常这是一种反模式,所以我很好奇您是否可以添加更多有关您的用例的信息。通常,您将使用条件写/读,以便无需轮询。

类似的东西:

Client == Client that needs new record updated
Client - update -> Lambda - (Update with Version/timestamp) -> DDB - 200 ->  Lambda - Saved Version/Timestamp -> Client - (Get/Update with Version/Timestamp) -> DDB

只要您要轮询以进行验证(使用CPU时间),您都将使用Lambda支付费用。但是,请不要害怕,有一些选项可供您使用(再次取决于您实际上要完成的工作)。

  1. 将轮询推送到前端客户端
  2. 使用DDB流通知您的客户端等...