amazon-web-services - 如何以编程方式获取 Lambda 部署到的 accountId?

标签 amazon-web-services aws-lambda boto3

我想获取部署 Lambda 的 AWS 帐户的 accountId。

威尔boto3.client('sts').get_caller_identity()['Account']返回 lambda 的部署帐户本身,还是 lambda 调用者的帐户?

在自己的代码中获取 Lambda AWS accountId 的正确方法是什么?

最佳答案

使用一组环境变量调用 Lambda 运行 AWS_ACCESS_KEY_ID , AWS_SECRET_KEY , AWS_SESSION_TOKEN等,这与直接调用 sts.assume_role() 假设在 lambda 函数的配置中指定的角色相同。如果您查看 get_caller_identity() 的完整输出你看到 Arn字段是正常的角色角色斜线名称实体假设角色。所以我假设 Account 的值字段在技术上是拥有所承担的 IAM 角色的帐户,但由于(AFAIK?)必须来自与 lambda 函数本身相同的帐户,我认为这是 lambda 函数帐户的可靠指标。

就我个人而言,我设置了一个 AWS_ACCOUNT_ID我的大多数/所有 lambda 函数上的环境变量,在 CloudFormation 中作为 AWS_ACCOUNT_ID: { Ref: "AWS::AccountId" } 很容易通过.

关于amazon-web-services - 如何以编程方式获取 Lambda 部署到的 accountId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479436/

相关文章:

amazon-web-services - 云形成 : How to deploy changes with affecting existing resources

amazon-web-services - Pulumi - 'AWS_PROXY' 目前仅支持 Lambda 函数

node.js - sqs.sendMessage 未送达

java - 如何在AWS Lambda中解决java.lang.RuntimeException:java.lang.ClassNotFoundException:org.apache.hadoop.fs.LocalFileSystem?

python - 在 AWS 中运行 python 脚本的最佳方法是什么?

amazon-web-services - boto3 分页器可以订购吗?

node.js - AWS Cloudformation - 如何将 sns 主题 arn 传递到堆栈?

amazon-web-services - 更改了我的云形成 IAM 组名称,但旧的 IAM 组不会被删除

python - Boto3/S3 : Renaming an object using copy_object

python - pymysql.err.InternalError : (1049, "Unknown database")