You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Cognito中CustomEmailSender_UpdateUserAttribute何时触发?

CustomEmailSender_UpdateUserAttribute 触发规则

该触发器源不会在所有用户属性更新操作时触发,仅当属性更新操作触发了「邮箱/手机号验证码发送流程」时才会被调用,普通属性更新不会触发。

具体触发场景只有以下两类:

  • 调用update-user-attributes(用户侧)或admin-update-user-attributes(管理员侧)接口修改email/phone_number属性,且Cognito判定需要向新的属性值发送验证码时
  • 用户在托管UI的个人资料修改页提交新的邮箱/手机号,触发验证流程时

以下操作无论用什么方式执行,都不会触发该触发器:

  • 修改name、地址、自定义属性等不需要验证的普通属性
  • 修改邮箱/手机号时,同步将email_verified/phone_number_verified参数设为true,直接跳过验证流程
  • 仅修改已验证属性的标记位、不修改属性值本身
常见未触发原因排查

你当前其他自定义邮件触发场景正常,说明Lambda基础权限、自定义发送者的全局配置没有问题,未触发基本是以下配置问题:

  • 未开启属性变更验证开关
    进入Cognito用户池的「属性验证」配置页,确认对应属性(邮箱/手机号)开启了属性值变更时自动发送验证的选项。该开关默认关闭,未开启时修改属性不会触发验证邮件发送流程,自然不会调用Lambda。
  • 触发器源配置漏选
    进入用户池「触发器」配置页,找到自定义邮件发送器的配置项,确认触发场景列表中已经勾选了「更新用户属性」对应的选项。配置时如果只勾选了创建用户、忘记密码等场景,就会出现其他触发正常、属性更新无日志的现象。
  • 接口传参不符合触发条件
    测试时如果调用更新属性接口同时传入了email_verified=true/phone_number_verified=true参数,Cognito会直接将新属性标记为已验证,不会生成验证码,也不会触发触发器。测试时只传入新的属性值、不要传已验证标记参数即可正常触发。

最小验证测试方法:确认上述配置开启后,调用aws cognito-idp admin-update-user-attributes --user-pool-id 你的池ID --username 测试用户名 --user-attributes Name=email,Value=新的测试邮箱,不要携带email_verified参数,即可在Lambda日志中看到对应触发记录。

内容的提问来源于stack exchange,提问作者wwags33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:33:18