如何获取用户在Lambda函数中启动操作的cognito id?
lambda函数由经过认证的认证用户在s3上传时触发。
如果我查看:event.Records [0] .userIdentity.principalId,我得到的是一个字符串" CognitoIdentityCredentials"
答案 0 :(得分:4)
正如Vinay所说,我们无法直接获得认知。如果有人有兴趣,这是我实施的解决方法。它保证了您的cognito用户的身份验证,但要求您将文件存储在每个用户的不同目录中:
让用户将该文件上传到' yourBucket / cognito-id / *'
设置Cognito认证用户的政策,以便他们无法在其他地方上传:
"资源&#34 ;: " ARN:AWS:S3 ::: yourBucket / $ {cognito-identity.amazonaws.com:sub} /"
id = event.Records [0] .s3.object.key.split(' /')[0]
答案 1 :(得分:1)
目前,在S3触发的事件中,Cognito Identity Id不可用。我们将在积压中考虑此功能,以便在使用Cognito凭据进行身份验证的差异服务触发的所有事件中添加此字段。