[英]Get environment name in AWS Lambda function in python
我想獲取運行我的 AWS Lambda 函數或以編程方式執行的環境名稱 (dev/qa/prod)。 我不想作為環境變量的一部分提供。 我們怎么做?
在 AWS 中,一切都在“生產”中。 也就是說,沒有“AWS for Dev”或“AWS for QA”的概念。
由您來創建您聲明為開發、質量保證或生產的資源。 有些人在不同的 AWS 賬戶中這樣做,或者至少為每個環境使用不同的 VPC。
幸運的是,您提到“AWS 中的每個環境都有不同的角色” 。
這意味着 AWS Lambda 函數可以調用get_caller_identity()
來獲取“有關其憑證用於調用操作的 IAM 用戶或角色的詳細信息”:
import boto3
def lambda_handler(event, context):
sts_client = boto3.client('sts')
print(sts_client.get_caller_identity())
它返回:
{
"UserId": "AROAJK7HIAAAAAJYPQN7E:My-Function",
"Account": "111111111111",
"Arn": "arn:aws:sts: : 111111111111:assumed-role/my-role/My-Function",
...
}
}
因此,您可以從Arn
提取正在使用的角色的名稱。
您的 lambda 函數可以執行以下操作之一:
def handler_name(event, context):
- 從event
字典中讀取數據。 調用者將不得不添加這個參數(因為我不知道什么是 lambda 觸發器,我無法判斷它是否是一個好的解決方案)我不想作為我的環境變量的一部分
為什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.