我正在尝试发现当前执行的 AWS Lambda 的 VPC IP 地址或 AWS ENI,以便我可以使用 IP 地址过滤 VPC 日志以查找匹配记录。Lambda 在 VPC 中运行并且没有公共 IP 地址。我尝试了这里建议的各种技术:使用 Python 的 stdlib 查找本地 IP 地址但这些对我不起作用,因为我认为它们是从容器的角度而不是 VPC 的角度显示容器的 IP 地址。
2 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
我们对此的解决方案是在 VPC 中生成一个私有 API,并带有一个模拟响应,它将告诉您调用的私有 IP 地址。然后根据该私有 IP 查询 EC2 DescribeNetworkInterfaces api。
由于这很耗时,我们只在冷启动时运行它,而不是在每次 lambda 运行时运行。

森栏
TA贡献1810条经验 获得超5个赞
部分答案是在创建 lambda 时而不是每次运行时设置 ENI。似乎,但我不确定,运行具有相同安全组的相同 VPC 的 lambda 共享相同的 ENI。所以,严格来说,我不需要在运行时从 lambda 本身的代码中发现 IP 地址。相反,我可以检查网络接口控制台以发现 lambda ENI 并将其用于我的过滤目的(当然,前提是没有来自同一网络接口上运行的其他 lambda 的太多流量)。
添加回答
举报
0/150
提交
取消