从API网关调用Lambda时缺少Cognito用户信息

时间:2018-06-22 09:42:16

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

我有一个API网关,其中包含由Cognito支持的授权者。我有一个由Lambda(用Java实现)支持的端点,该端点需要用户的唯一标识符。

当我通过API网关UI测试该功能时,Lambda会在APIGatewayProxyRequestEvent.getRequestContext().getIdentity()中接收用户信息。当我从Java客户端从外部调用该函数时,此信息丢失。

有人知道有什么区别吗?我如何将用户的信息传递给Lambda?

我尝试使用在用户信息之间复制的正文映射模板,而不是使用Lambda代理集成。我也尝试过从接受ID令牌转换为访问令牌。这些行为均如上所述。

1 个答案:

答案 0 :(得分:0)

this AWS forum threadthis serverless forum post中找到了答案。

用户的标识符包含在requestContext.authorizer.claims.sub中,而Java对象模型ProxyRequestContext中没有包含该标识符。

我仍然不清楚为什么identity对象总是(大部分)为空