【发布时间】:2017-10-14 21:09:31
【问题描述】:
我有一个用 .NET Core (C#) 编写的简单 Lambda 函数,它使用 APIGatewayProxyRequest 对象遍历所有请求属性。
如果我测试这个 lambda 函数(来自 AWS Lambda),并向它传递一个包含基本信息的示例事件配置:
我可以像这样得到这些信息:
public string FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)
logger.Logger.Log($"Body: {request.Body} \n");
logger.Logger.Log($"Path: {request.Path} \n");
logger.Logger.Log($"Resource: {request.Resource} \n");
我如何从相同的数据访问自定义上下文或授权值:
我试过了:
logger.Logger.Log($"RequestContext Authorizor: {request.RequestContext.Authorizer} \n");
包括它的不同属性(StringKey、PrincipleId 等)
从 Node.js 看来,这可以通过使用这个来简单地实现:
event.requestContext.authorizer.customKey
C#中没有这样的东西吗?
【问题讨论】:
-
嗯,这很奇怪,是的,所以在 nodeJS 中我只是这样做。 event.requestContext.authorizer - 你确实意识到这是一个小写的“a”对 - 授权人?
-
是的,我明白这一点,在使用 node.js 时。使用 APIGatewayProxyRequest 对象时,根据命名空间和对象属性,它是大写的。似乎有一种非常不同的方式可以根据所使用的语言访问三个。仍然找不到通过 C# 的方式
-
你看到了吗:stackoverflow.com/questions/43205120/… - 在这里吐口水,你能把 requestContext 变成一个字符串并记录下来吗?
-
是的,看到了,并且已经在项目中记录了评论。理想情况下,我不喜欢使用“临时”和自称“肮脏”的方式来获取这些。我不明白为什么你可以轻松地为节点获得这个,但不是。网核 C#
-
是的,它确实看起来很奇怪,但在 AWS 堆栈上很少有这样的东西,例如,我认为目前 Cognito 身份池中缺少一些东西,我想这些东西即将到来。抱歉,我无法提供更多帮助 - 仅在 Lambda 上使用 JS!
标签: c# amazon-web-services aws-lambda aws-api-gateway