2017-08-18 32 views
0

我遇到問題,即一旦ENI被分離並從中刪除,我的Lambda函數就無法在VPC子網中創建新的ENI該子網。我已經在兩個不同的VPC和多個子網上重現了這一點。已將ENI從子網中手動分離後,VPC中的Lambda不會創建新的ENI

下面是我用來重現此步驟:

  1. 創建一個lambda函數,並將其與VPC和子網相關聯。
  2. 執行Lambda函數,這將導致它在子網中創建一個新的ENI。該功能可以訪問VPC中的RDS數據庫。
  3. 手動分離並刪除子網上的ENI。
  4. 再次執行Lambda函數。將不會創建ENI。 Lambda函數無法訪問RDS數據庫。

我在兩個VPC中的多個子網上重複了這些步驟,現在Lambda函數無法在任何這些子網中創建新的ENI。

似乎VPC子網永遠無法使用Lambda函數創建新的ENI,但在讓事情過夜後,我今天上午再次運行該函數,並且能夠創建ENI。 AWS必須有一個自動化的流程來清理一些東西。即使如此,我再次測試了分離和刪除,並且我回到了Lambda函數不會創建新的ENI的狀態。

不知道這裏發生了什麼。拆卸ENI時,我不選擇「Force Detach」。我究竟做錯了什麼?

+0

ENI僅在Lambda冷啓動時創建。我猜你正在手動刪除ENI之後打了一個仍然溫暖的Lambda函數。 –

+0

但是,如果我刪除Lambda函數並在同一個VPC和子網中重新創建它,則新函數無法創建ENI。不應該刪除和重新創建功能導致冷啓動? –

+0

是的,這聽起來不對。你是否改變分配給該功能的IAM角色? –

回答

1

從今天下午我所做的研究看來,這是在VPC中運行的Lambda函數的侷限性,並且已經存在了一年多。在Lambda函數被刪除之後,在清理ENI時有6小時的延遲。我的手動分離和刪除ENI使情況變得更糟,因爲看起來ENI在延遲六小時後才真正被刪除。手動刪除似乎將ENI置於某種孤兒狀態,從而阻止在該子網中創建新的ENI,直到AWS清理舊的ENI。

https://www.reddit.com/r/aws/comments/4fncrl/dangling_enis_after_deleting_an_invpc_lambda_with/

https://github.com/hashicorp/terraform/issues/5767

因此,目前似乎迫使清理是刪除ENI,它是在子網中的唯一的解決辦法: - 。/

我讓我的無服務器刪除命令運行很長一段時間(沒有我通過手動刪除ENI來加快速度),它最終完成了,但花了40分鐘。 ENI被留下,但其他一切都被清理了。我想象在六個小時內ENI會消失。

相關問題