2017-03-08 98 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函數的地方,以便在每個帳戶之間,我們可以添加一個等待/休眠條件。 –