如何发现正在运行的 AWS lambda 的本地 IP 地址或 ENI?

我正在尝试发现当前执行的 AWS Lambda 的 VPC IP 地址或 AWS ENI,以便我可以使用 IP 地址过滤 VPC 日志以查找匹配记录。Lambda 在 VPC 中运行并且没有公共 IP 地址。

我尝试了这里建议的各种技术:

使用 Python 的 stdlib 查找本地 IP 地址

但这些对我不起作用,因为我认为它们是从容器的角度而不是 VPC 的角度显示容器的 IP 地址。


白衣非少年
浏览 231回答 2
2回答

梦里花落0921

我们对此的解决方案是在 VPC 中生成一个私有 API,并带有一个模拟响应,它将告诉您调用的私有 IP 地址。然后根据该私有 IP 查询 EC2 DescribeNetworkInterfaces api。由于这很耗时,我们只在冷启动时运行它,而不是在每次 lambda 运行时运行。

森栏

部分答案是在创建 lambda 时而不是每次运行时设置 ENI。似乎,但我不确定,运行具有相同安全组的相同 VPC 的 lambda 共享相同的 ENI。所以,严格来说,我不需要在运行时从 lambda 本身的代码中发现 IP 地址。相反,我可以检查网络接口控制台以发现 lambda ENI 并将其用于我的过滤目的(当然,前提是没有来自同一网络接口上运行的其他 lambda 的太多流量)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python