c#如何在AWS Lambda调用中识别accountId和Region?

时间:2018-12-19 15:16:19

标签: c# amazon-web-services .net-core aws-lambda amazon-sns

我需要确定accountId和触发AWS Lambda函数的AWS账户的区域。我没有在ILambdaContext中找到这些信息。 如何获得这些信息? 它是由SNS触发的 我正在使用.Net Core 2.1

3 个答案:

答案 0 :(得分:1)

如果您有权访问Lambda执行上下文,则可以直接从上下文对象中的InvokedLambdaFunctionArn提取AWS区域和AWS账户ID。 当您调用Lambda函数时,根据集成类型,处理程序将接受一个事件对象或两个参数-请求对象和执行上下文。

答案 1 :(得分:0)

您可以将AccountNumber添加到环境变量中,并阅读:

var accountNumber = System.Environment.GetEnvironmentVariable("AccountNumber")

答案 2 :(得分:0)

识别帐户 ID 的正确方法是使用安全令牌服务 (STS)。使用以下方法 https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecurityToken/MISecurityTokenServiceGetCallerIdentityGetCallerIdentityRequest.html

IAmazonSecurityTokenService.GetCallerIdentity

添加 Nuget 包 AWSSDK.SecurityToken ,然后创建 sts 客户端

onadd