如何配置AWS SES触发Lambda函数?配置后未触发问题咨询
排查SES收件规则触发Lambda失败的步骤
确认邮箱已完成SES验证
abc@xyz.com必须通过SES的邮箱验证流程(点击验证邮件完成确认),未验证的邮箱会被SES直接拒收,无法触发任何收件规则。检查规则集的活跃状态
SES同一区域仅能有一个活跃规则集,若你配置的规则集未设为「活跃」,或存在其他活跃规则集,当前规则不会生效。验证规则匹配条件
除了收件人是abc@xyz.com,需检查规则是否添加了其他过滤条件(如发件人限制、主题关键词筛选),这些额外条件可能导致邮件未命中规则。检查Lambda的权限配置
SES需要拥有调用Lambda的权限,需在Lambda执行角色中添加如下权限策略:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:<区域>:<账号ID>:function:<你的函数名>", "Condition": { "StringEquals": { "AWS:SourceAccount": "<你的AWS账号ID>" } } } ] }同时确认SES规则中指定的Lambda函数ARN完全正确,无区域、函数名拼写错误。
查看相关日志定位问题
- 在SES控制台「邮件流」→「邮件事件」中搜索目标邮件,查看是否有规则匹配记录及报错信息(如权限不足、Lambda调用失败)。
- 在Lambda控制台「监控」→「日志」中查看CloudWatch日志,确认函数是否被调用,或是否存在执行异常。
检查邮件是否被SES拦截
部分邮件可能因垃圾邮件评分过高、附件安全问题被SES直接拦截,无法进入规则匹配环节。可在SES「拒收邮件」列表中查询,或让发件人确认是否收到退信通知。确认资源区域一致性
SES规则集、Lambda函数、邮箱验证必须处于同一AWS区域,跨区域配置会导致触发失败。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

