2017-03-08 73 views
1

我们有20个AWS账户,我们在每个账户的10个区域创建资源。我们希望确保AWS资源 - ELB,AMI和EBS快照正确标记。我们希望定期运行一项服务来扫描帐户并删除上面提到的任何未正确标记的资源。我们希望这是无服务器,我们正在寻找使用Lambda。但是,Lambda有两个问题:For循环AWS步骤功能

  1. Lambda超时 - 目前为5分钟。
  2. 节流错误

我们需要确保我们处理下一个帐户完成第一个帐户处理之后(我们可以把硬睡了几分钟,然后开始处理下一个帐户)。

有人遇到过类似的情况,如果是这样,它是如何实现的?

最糟糕的情况:我们将使用ECS。

回答

0

首先,可以在5分钟内完成您最内心的工作吗?如果是的话,Lambda是一个很好的选择。你的情况看起来很合适。

接下来,通过支持票证请求更高的限制容易引发限制。

最后,尝试将其分解为几个较小的函数。也许是这样的:

  • 删除资源 - 删除一个未标记的资源
  • 得到-未标记的资源 - 在一个账户在未标记的资源,并调用“删除资源”在async.each循环
  • 获取账户 - 得到列表的帐户,并调用“获得,未标记的资源”在async.each循环

其实我更喜欢有,而不是直接调用它们通过SNS触发了我的功能,但你明白了。希望这可以帮助。

+0

虽然我更喜欢这种方法并已实现它,但当我们有很多账户时,我们需要在每个账户之间等待几秒钟。原因是:对于每个帐户中的每个区域,我们至少需要2次描述性调用(每个服务)。第二个和第三个Lambda函数只有很少的API调用。 节流错误发生在第一部分,这就是我想要使用STEP函数的地方,以便在每个帐户之间,我们可以添加一个等待/休眠条件。 –