如何在lambda函数中获得cognito id?

时间:2015-09-01 06:34:42

标签: amazon-web-services amazon-s3 amazon-cognito aws-lambda

如何获取用户在Lambda函数中启动操作的cognito id?

lambda函数由经过认证的认证用户在s3上传时触发。

如果我查看:event.Records [0] .userIdentity.principalId,我得到的是一个字符串" CognitoIdentityCredentials"

2 个答案:

答案 0 :(得分:4)

正如Vinay所说,我们无法直接获得认知。如果有人有兴趣,这是我实施的解决方法。它保证了您的cognito用户的身份验证,但要求您将文件存储在每个用户的不同目录中:

  • 让用户将该文件上传到' yourBucket / cognito-id / *'

  • 设置Cognito认证用户的政策,以便他们无法在其他地方上传:

  

"资源&#34 ;:   " ARN:AWS:S3 ::: yourBucket / $ {cognito-identity.amazonaws.com:sub} /"

  • 在lambda函数中,从文件密钥中读取cognito id,例如:
  

id = event.Records [0] .s3.object.key.split(' /')[0]

答案 1 :(得分:1)

目前,在S3触发的事件中,Cognito Identity Id不可用。我们将在积压中考虑此功能,以便在使用Cognito凭据进行身份验证的差异服务触发的所有事件中添加此字段。