我遇到一个问题,一旦ENI已从该子网分离并删除,我的Lambda函数就无法再在VPC子网中创建新的ENI。我在两个不同的VPC和多个子网上重现了这个。
以下是我用来重现这一步的步骤:
我在两个VPC中的多个子网中重复这些步骤,现在Lambda函数无法在任何这些子网中创建新的ENI。
似乎VPC子网永远无法使用Lambda函数创建新的ENI,但在让事情过夜之后我今天早上再次运行该功能并且能够创建一个ENI。 AWS必须具有清理某些内容的自动化流程。即使这样,我再次测试了分离和删除,我又回到了Lambda函数不会创建新ENI的状态。
不确定这里发生了什么。在拆卸ENI时,我没有选择“Force Detach”。我做错了什么?
答案 0 :(得分:5)
从我今天下午所做的研究来看,这似乎是在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就会消失。
答案 1 :(得分:2)
我最近遇到了类似的问题。我无法删除sg或子网,因为它们正被其他堆栈使用。我发现如果我强制lambda进行冷启动,可能会创建新的eni。为了测试这一点,我分配了最大内存和超时时间。奏效了。