1

我在 aws lambda 服务器上有 2 个用不同语言编写的 lambda

假设它调用C并且J

并且有一个逻辑,当用户调用C参数匹配某些条件时。它会做一些事情,然后J像用户自己调用一样调用J(相同的 cognitoId)

所以我需要获取调用我的Clambda 函数并使用它来调用的用户的凭据J

但我找不到从 lambda 环境中获取当前用户凭证的线索

我只能得到context.Identity但不足以创建凭据以调用 lambda 作为模拟用户

我能做什么?

4

2 回答 2

0

我将使用 Java SDK 中的示例,但这些方法在所有 SDK 中都可用,因此请适应您选择的语言。

您可以使用以下AmazonCognitoClient方法将 identityId 令牌交换为凭证(基本上是临时访问密钥/秘密密钥):

public GetCredentialsForIdentityResult getCredentialsForIdentity(GetCredentialsForIdentityRequest getCredentialsForIdentityRequest)

GetCredentialsForIdentityRequest接受一个可以交换为GetCredentialsForIdentityResult. 您可以使用getCredentials()结果来获取一个Credentials实例,然后您可以使用该实例来调用 Lambda J。

于 2017-01-14T20:06:07.700 回答
0

我现在可以使用的唯一解决方法是,使用 DeveloperCredential 始终获取每个用户的访问令牌并使用该凭证调用 subsequence lambda。缺点是所有用户都不能是匿名用户

于 2017-07-23T10:17:26.043 回答