如何为 AWS Lambda 函数创建全局计数器?

WeC*_*nds 3 amazon-web-services aws-lambda serverless-framework

如果我想每 2 分钟启动一个 lambda 函数,就会调用一个带有索引号的 api。我将如何存储 lambda 的索引号以在初始化时读取并在每次 lambda 函数成功调用 api 时将其加一?

我认为只为柜台准备一个发电机桌是矫枉过正的。

das*_*mug 5

我认为使用 dynamoDB 以外的其他东西会过大。

DynamoDB 正是为此目的而设计的。对于您的用例,它几乎是免费的。并且只会为您的运行时间增加大约 10 毫秒。与您的 Lambda 将获得的冷启动相比,这是非常微不足道的。


如果您真的想同时削减 DynamoDB 成本和 Lambda 运行时,您可以将计数器缓存在 Lambda 容器内(在您的处理程序外)。

假设没有并发调用(仅通过预定事件触发),我会为每次调用执行以下操作:

  1. 检查缓存的计数器值。
  2. 如果counter == 0,则从 DynamoDB 读取值。如果counter > 0,则使用该值。
  3. 做任何你想做的事。
  4. DynamoDB 中的增量计数器和缓存值。