AWS Lambda元数据,如用于lambda的EC2元数据

时间:2016-07-19 17:59:35

标签: amazon-web-services amazon-ec2 metadata aws-lambda

AWS EC2元数据从EC2(duh!)提供有关其自身的必要信息 - 是否有与lambda等效的内容。

我理解lambda函数的多租户和短期行为与EC2不同,但像Account ID,VPC AZ,Region这样的基本信息将有助于进行大量的AWS自动化。

3 个答案:

答案 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_REGIONAWS_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)