【发布时间】:2018-01-27 08:01:21
【问题描述】:
我遇到了一个问题,即一旦从 VPC 子网中分离并删除了 ENI,我的 Lambda 函数就无法再在该子网中创建新的 ENI。我已经在两个不同的 VPC 和多个子网上复制了这个。
以下是我用来重现此内容的步骤:
- 创建 Lambda 函数并将其与 VPC 和子网关联。
- 执行 Lambda 函数,这将导致它在子网中创建一个新的 ENI。该函数能够访问 VPC 中的 RDS 数据库。
- 从子网手动分离和删除 ENI。
- 再次执行 Lambda 函数。不会创建 ENI。 Lambda 函数无法访问 RDS 数据库。
我在两个 VPC 中的多个子网中重复了这些步骤,现在 Lambda 函数无法在任何这些子网中创建新的 ENI。
VPC 子网似乎永远无法让 Lambda 函数创建新的 ENI,但在让事情一夜之间,我今天早上再次运行了该函数,它能够创建一个 ENI。 AWS 必须有一个自动化流程来清理某些东西。即便如此,我再次测试了分离和删除,我又回到了 Lambda 函数不会创建新 ENI 的状态。
不确定这里发生了什么。分离 ENI 时,我没有选择“强制分离”。我做错了什么?
【问题讨论】:
-
ENI 仅在 Lambda 冷启动时创建。我猜您在手动删除 ENI 后遇到了仍然热的 Lambda 函数。
-
但如果我删除 Lambda 函数并在同一个 VPC 和子网中重新创建它,新函数将无法创建 ENI。删除并重新创建函数不应该导致冷启动吗?
-
是的,这听起来不对。您是否要更改分配给该函数的 IAM 角色?
-
为什么要删除网卡?您这样做是为了解决什么问题?
-
@MarkB 我使用的是相同的 IAM 角色,但我只是尝试创建一个新函数和一个新的 IAM 角色,但使用相同的 VPC 和子网仍然没有获得 ENI。
标签: amazon-web-services aws-lambda