AWS Lambda-根据AWS账户

时间:2018-10-22 09:42:15

标签: java amazon-web-services aws-lambda

我正在尝试在用Java编写的Lambda中加载属性文件。我知道我可以传递环境变量,例如env dev,test,stage,prod等,并在lambda中根据运行lambda的环境加载相应的属性文件。但是,该Lambda还将在中国区域的多个AWS账户下运行,目前不支持将env变量传递给Lambda。

我当时想我可以从API找出AWS帐号,然后根据帐号我可以为该环境加载正确的属性文件,这将是解决此问题的正确方法。假设稍后我必须在另一个需要更改代码的环境中运行Lambda代码。

[更新]

好像我可以从处理程序可用的上下文变量中提取帐号

    context.getInvokedFunctionArn()

e.g. arn:aws:lambda:us-east-1:999999999999:function:my_lambda_function

1 个答案:

答案 0 :(得分:0)

您可以使用AWS服务STS并使用GetCallerIdentity API调用。这将为您提供帐号。使用帐号,您可以在代码中加载配置。

使用策略创建新角色: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:GetCallerIdentity", "Resource": "*" } ] }