使用Cognito凭据从API Gateway调用Lambda的用户

时间:2016-09-26 15:54:35

标签: amazon-dynamodb amazon-cognito aws-api-gateway

使用Cognito凭据从浏览器调用我的API端点不会向发出请求的用户提供lambda函数。

我正在使用AWS_IAM auth作为端点

这是我的lambda中的请求:

module.exports.addItem = (event, context, done) => { console.log(event.identity); /** accountId: "", apiKey: "", caller: "", cognitoAuthenticationProvider: "", cognitoAuthenticationType: "", cognitoIdentityId: "", cognitoIdentityPoolId: "", sourceIp: "213.229.49.108", user: "", userAgent: "Mozilla/5.0 (X11; Linux x86_6....", userArn: "" */ };

我想为用户执行一些dynamodb操作。我怎样才能得到用户?

1 个答案:

答案 0 :(得分:0)

您可以通过2个选项将Cognito Identity Id添加到Lambda函数中:

  1. 检查"使用来电显示"在控制台中的API方法上。这将告诉API Gateway使用Cognito凭证来调用Lambda,这意味着Lambda函数的context.identity将包含信息。 注意您的Cognito角色需要获得调用Lambda函数的权限才能生效。

  2. 使用mapping template将值映射到事件有效内容中。

  3. 看起来你正在努力做#2,但是你还没有包含你的映射模板,请确保它包含所需的值。此外,请确保您已部署了启用IAM身份验证的更改,并确保您正确签署了请求。