使用Python Boto3创建Cognito用户遇LimitExceededException问题咨询
问题原因及解决方案
核心原因
你遇到的问题并非SES配额不足,而是Amazon Cognito默认使用AWS托管的邮件服务,而非你账号的SES资源。这个托管服务有独立的发送限额,默认日发送量远低于你自己的SES配额(通常为每日50封,刚好匹配你前50个用户创建成功的情况)。只有当你明确配置Cognito用户池使用自定义SES配置时,才会调用你账号的SES资源并使用其50000封的日限额。
具体验证点
检查你的Cognito用户池配置:进入用户池的消息自定义页面,查看“电子邮件”部分是否选择了“使用自己的Amazon SES配置”,并指定了已验证的发件邮箱和SES配置集。如果没有,说明当前用的是Cognito托管邮件服务,受限于其低限额。
解决方案
配置Cognito使用自定义SES
- 在SES控制台验证你要用于发送Cognito邮件的邮箱或域名。
- 进入Cognito用户池的“消息自定义”页面,切换电子邮件发送方式为“使用自己的Amazon SES配置”,选择已验证的发件邮箱,并按需配置SES配置集。
- 保存配置后,后续创建用户时的邮件将通过你的SES配额发送,不再受Cognito托管服务的限额限制。
临时缓解方案(不推荐长期使用)
若暂时无法配置SES,可以在Airflow任务中添加请求延迟,比如每个用户创建请求后暂停1-2秒,避免触发Cognito托管服务的速率限制。但这仅能处理短期小批量操作,无法支撑9000用户的批量需求。排查其他邮件消耗
确认你的Cognito用户池近期是否有其他邮件发送操作(如密码重置、用户验证),这些也会占用托管服务的限额,但当前场景下主要是批量创建用户的邮件占用额度。
内容的提问来源于stack exchange,提问作者Naveen Pragathesh
相关产品推荐
相关产品推荐

