找出 lambda 函数从哪个 IP 运行

Spa*_*Dev 5 python amazon-web-services amazon-vpc aws-lambda serverless

我有一个从 VPC 运行的 lambda 函数。我们为 HA 配置了三个可用区。我想知道每个 Lambda 调用是从哪个可用区运行的。

我的 lamdba 使用 python 3.7 作为运行时

我试过这个

import socket    
hostname = socket.gethostname()    
IPAddr = socket.gethostbyname(hostname)    
print("Your Computer Name is:" + hostname)    
print("Your Computer IP Address is:" + IPAddr) 
Run Code Online (Sandbox Code Playgroud)

但这给了我:

Your Computer Name is:169.254.128.117
Your Computer IP Address is:169.254.128.117
Run Code Online (Sandbox Code Playgroud)

这没有帮助。

我如何知道 lambda 函数正在使用什么私有 IP?

Chr*_*ams 5

请记住,当您将 Lambda 配置为在 VPC 中工作时,它实际上已附加到 VPC(实际上它在 AWS 托管的 VPC 中运行)。

相反,您会为每个 Lambda 获得一个 ENI,Lambda 将通过该 ENI 代表其出站连接,这使其能够连接到 VPC 中的资源。

目前,Lambda 无法访问您正在运行的可用区域的值,以下是Lambda 有权访问的所有可用环境变量的列表。

如果您想要检索连接到资源的 ENI IP,因为您需要与 VPC 中的资源进行出站通信,并返回您连接的 IP 地址。