【问题标题】:execute aws lambda function sequentially按顺序执行 aws lambda 函数
【发布时间】:2017-05-15 22:38:47
【问题描述】:

我已经编写了一个用于自动缩放服务器命名的 python 脚本。这将在自动缩放中检查当前服务器,并为新服务器提供适当的名称和序列。

我正在通过自动缩放事件触发我的 Aws lambda 函数。当我同时带来 3 台服务器(或具有所需容量 10 的新自动缩放)时,我不希望 lambda 并行执行。它使我的脚本为所有服务器分配相同的计数。

或者,如果我可以实现某种锁定以将其他 lambda 表达式置于等待状态。那我应该用什么来做呢。

【问题讨论】:

    标签: amazon-web-services lambda locking aws-lambda


    【解决方案1】:

    有两种选择:

    1. 您可以使用 DynamoDB 表创建分布式锁。这将 帮助您保持“操作进行中”的状态。每次一个 由于自动缩放事件调用了 lambda 函数,您可以 检查该记录是否存在于 dynamodb 中。如果它没有创建一个, 并继续。如果它存在,什么也不做并返回。在你的 lambda 之后 函数执行成功,删除该条目。这大概 作为读取和 此表的写入容量会非常低。
    2. 您可以使用步进函数来实现此场景。 使用步进功能,您可以检查一个是否已经在运行,并且 跳过。

      在此处阅读有关步进函数的更多信息: https://aws.amazon.com/step-functions/

    【讨论】:

    • 我的问题不是 lambda 函数的编排,而是同一个 lambda 函数的多个实例正在执行。所以即使我使用 aws step 函数,也会执行 aws step 函数的多个实例。
    猜你喜欢
    • 2019-07-30
    • 2016-10-16
    • 1970-01-01
    • 2011-07-29
    • 2017-10-02
    • 2017-09-05
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多