当用户添加到用户池时,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 错误