2017-05-15 85 views
1

我写了一个用于自动缩放服务器命名的python脚本。它将检查自动缩放中的当前服务器并为新服务器提供适当的名称和顺序。按顺序执行aws lambda函数

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

或者如果我可以实现某种锁定来使其他lambda处于等待状态。所以我应该怎样使用它。

回答

1

有2个选项:

  1. 您可以创建使用DynamoDB表中的分布式锁。这将帮助你维持一个说运行正在进行的状态。每次由于自动调节事件而调用 lambda函数时,您都可以 检查此记录是否存在于dynamodb中。如果它没有创建一个,则继续执行 。如果存在,则不做任何处理并返回。在您的lambda 函数成功执行后,请删除此条目。这可能是 将增加不超过$ 2.00您的总AWS账单,因为该表的读取和 写入容量将非常低。
  2. 您可以使用步骤功能来实现此场景。 使用步进功能,您可以检查一个是否已经在运行,并跳过 。

    了解更多关于此步功能: https://aws.amazon.com/step-functions/

+0

我的问题不是lambda函数的编排,但越来越执行相同的lambda函数的,而多个实例。 所以即使我使用aws step函数,那么aws step函数的多个实例也要执行。 – Deepak

+0

我已经用其他解决方案更新了我的答案。 –