AWS EC2元数据从EC2(duh!)提供有关其自身的必要信息 - 是否有与lambda等效的内容。
我理解lambda函数的多租户和短期行为与EC2不同,但像Account ID,VPC AZ,Region这样的基本信息将有助于进行大量的AWS自动化。
答案 0 :(得分:2)
不,不幸的是没有。上下文对象是最接近的东西,但它提供的信息非常有限。 http://docs.aws.amazon.com/lambda/latest/dg/programming-model-v2.html
如果您自己或以编程方式调用lambda函数,则可以在有效负载中传递帐户ID和区域。
答案 1 :(得分:0)
您可以在部署Lambda时设置环境变量:https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html
已经有AWS_REGION
和AWS_DEFAULT_REGION
个变量:https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html#lambda-environment-variables。
event
可以具有requestContext.accountId
之类的字段:https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html?shortFooter=true#eventsources-api-gateway-request
在浏览Terraform的lambda_function配置时发现了这一点。
答案 2 :(得分:0)
在Lambda的上下文对象中,您可以解析出您在invoked_function_arn中正在寻找的一些信息。
例如在Python中:context.split(':')[3]
将为您提供区域,context.split(':')[4]
将为您提供aws帐户ID,而context.split(':')[6]
将为您提供函数名称(在上下文中也可用.function_name
invoked_function_arn如下所示:
arn:aws:lambda:us-east-1:741063561123:function:lambda_context
一旦掌握了这些信息,就可以使用aws库(例如适用于Python的boto3)来获取有关lambda的其余信息(例如VPC,SG)