如何将 cognito 用户信息传递给 lambda?

How to pass cognito user information to lambda?

我正在开发基于 API Gateway 和 Lambda 的应用程序。我配置 POST /订阅为 "AWS_IAM"。所以现在它不能直接访问,但我可以使用 Cognito 身份验证访问 API。

现在的问题是我的 Lambda 不知道 API 调用者是谁。怎么知道的?

我有 2 个用户:"Bob" 和 "John"。我的 Lambda 需要知道调用者是 Bob 或 John。

谢谢,

您可以从 context 参数 (context.identity) 的 identity 属性 中获取 Cognito 身份 ID,如 context Object Properties section of the Lambda Programming Model help topic 中所述。获得 Cognito 唯一标识符后,您可以将 Cognito Sync 的 API 与您的开发人员凭据一起使用,以查找存储在 Cognito 中的有关此用户的信息,或者您可以使用该标识符将 ID 映射到存储在其他地方的用户信息。

确保 API 网关配置为 AWS_IAM(如您所述),并确保在方法的 "Integration Request" 设置下选中 "Invoke with caller credentials"。