【问题标题】:Send username to aws Lambda function triggered by aws Cognito user confirm将用户名发送到由 aws Cognito 用户确认触发的 aws Lambda 函数
【发布时间】:2018-09-09 19:53:26
【问题描述】:

我正在尝试编写一个 Lambda 函数,该函数在一个以新确认的 cognito 用户命名的 s3 存储桶中创建一个文件夹。这将允许我将该用户的访问权限限制在他们的文件夹中。我创建了一个 Lambda 函数,该函数可以使用通过 Lambda 的测试事件对象传递的用户名在 s3 中创建一个文件夹。我知道 cognito 有一个“确认事件”触发器,并且我选择了在该触发器上运行的函数,但我不知道如何从该事件中检索用户名。下面的屏幕截图是我的 Lambda 代码。
my lambda function

如果我需要提供更多信息,请告诉我。我已经看到有关可能使用亚马逊 API 网关的信息,但是在一个半小时左右的时间里,我已经搞砸了 API 网关,我还没有更接近于弄清楚如何解决这个问题。

谢谢! 〜本

【问题讨论】:

  • 请忽略我的愚蠢控制台日志。它们来自我已经解决的另一个错误。

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


【解决方案1】:

好问题,在文档 (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-lambda-trigger-syntax-post-confirmation.html) 中,他们只说 request.userAttributes 显然不包含用户名。

我检查过,确认后触发器的整个事件对象如下所示:

{
    "version": "1",
    "region": "eu-central-1",
    "userPoolId": "eu-central-1_45YtlkflA",
    "userName": "user4",
    "callerContext": {
        "awsSdkVersion": "aws-sdk-java-console",
        "clientId": "4736lckau64in48dku3rta0eqa"
    },
    "triggerSource": "PostConfirmation_ConfirmSignUp",
    "request": {
        "userAttributes": {
            "sub": "a2c21839-f9fc-49e3-be9a-16f5823d6705",
            "cognito:user_status": "CONFIRMED",
            "email_verified": "true",
            "email": "asdfsdfsgdfg@carbtc.net"
        }
    },
    "response": {}
}

所以基本上,只有event.userName 会检索用户名。


更新

最近的文档:

【讨论】:

猜你喜欢
  • 2020-09-27
  • 2023-03-29
  • 2018-04-02
  • 2021-01-06
  • 2016-09-22
  • 2021-11-05
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
相关资源
最近更新 更多