【问题标题】:AWS Lambda - Loading the properties file according to AWS AccountAWS Lambda - 根据 AWS 账户加载属性文件
【发布时间】:2026-01-23 00:00:02
【问题描述】:

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

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

[更新]

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

    context.getInvokedFunctionArn()

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】: