当用户添加到用户池时,Cognito 启动 lambda

Posted

技术标签:

【中文标题】当用户添加到用户池时,Cognito 启动 lambda【英文标题】:Cognito launch lambda when user added to a user pool 【发布时间】:2022-01-11 12:41:00 【问题描述】:

是否可以通过 EventBridge 规则将用户添加到用户池(任何一个)中时触发 lambda?

【问题讨论】:

【参考方案1】:

可以在 CloudTrail 中记录 AWS Cognito,然后使用 EventBridge 根据来自 AWS Cognito 的 AWS CloudTrail API 调用触发 lambda。

    如Logging Amazon Cognito API calls with AWS CloudTrail 中所述,需要在 AWS CloudTrail 中设置跟踪 在 EventBridge 中,您可以从服务 AWS Cognito 用户池和 CloudTrail 中选择一个事件模式:

    您可以过滤要从单个操作触发的 lambda,例如 AdminCreateUser

过滤 lambda 触发器的支持操作列表,supported operations。

您还可以在 AWS Cognito 中将 lambda 设置为触发器,以对每个用户操作进行预注册或预身份验证,而不是使用事件桥。

如文档Customizing user pool workflows with Lambda triggers中所述:

您可以创建 AWS Lambda 函数,然后在用户池操作(例如用户注册、确认和登录(身份验证))期间使用 Lambda 触发器触发该函数。您可以添加身份验证质询、迁移用户和自定义验证消息。

在 AWS Cognito 中将 lambda 链接为触发器:

    如果 lambda 不存在,请创建。 在 AWS Cognito 中,从列表中选择现有用户池,或创建用户池。 在您的用户池中,从导航栏中选择“触发器”选项卡。 选择一个 Lambda 触发器,例如预注册或预身份验证,然后从 Lambda 函数下拉列表中选择您的 Lambda 函数(之前在 AWS Lambda 中创建)。 选择保存更改。

【讨论】:

以上是关于当用户添加到用户池时,Cognito 启动 lambda的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws cloudformation 模板在 aws cognito 用户池中设置所需属性?

在 cognito 用户池中添加 lambda 触发器时出现 404 错误

具有授权的 AWS Cognito 用户(如何从应用程序将用户添加到用户组?)

Aws cognito添加预定义用户

如何在 Cognito 用户池组中添加用户?

无法在新用户池中配置发件人电子邮件