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

如何自定义AWS RDS事件通知邮件内容?SNS转SES配置疑问求解

自定义AWS RDS事件通知邮件内容的实现方案

我之前也碰到过一模一样的问题——SNS默认发的RDS事件邮件太简略,根本没法快速定位问题。核心解决思路是通过中间处理层(Lambda)改造事件内容,再用SES发送自定义邮件,下面给你两种可行的方案:

方案一:SNS + Lambda + SES 链式处理

这种方案适合已经有现成SNS主题,或者需要给多个目标推送事件的场景:

  • 第一步:保留原有RDS事件配置,将目标设为你的SNS主题,确保RDS能正常把事件推送到SNS。
  • 第二步:创建Lambda函数,订阅这个SNS主题。当SNS收到RDS事件时会自动触发Lambda,你能在Lambda的事件参数里拿到完整的RDS事件JSON数据(比如event.Records[0].Sns.Message就是原始事件内容)。
  • 第三步:在Lambda里解析这份JSON,提取关键信息:比如实例ID、事件类型、事件时间、详细描述等,然后按照你想要的格式拼接邮件内容——比如加上实例所属的VPC、环境标签,甚至自定义的故障排查提示。
  • 第四步:让Lambda调用SES的SendEmail或SendTemplatedEmail API发送邮件。记得给Lambda添加ses:SendEmail的IAM权限,同时在SES里验证你的发件邮箱/域名,避免邮件被拦截。
    • 进阶技巧:如果经常要调整邮件格式,建议用SES的邮件模板功能,先在SES控制台创建带占位符的模板(比如{{instanceId}}、{{eventTime}}),然后Lambda把解析后的参数传入模板,这样修改格式不用改代码。

方案二:直接用Lambda接收RDS事件(跳过SNS)

如果不需要给多个目标推送事件,直接让RDS触发Lambda更高效:

  • 在RDS事件通知配置里,目标选择Lambda函数,而非SNS主题。RDS会直接把事件JSON推送到Lambda,省去SNS中转的步骤。
  • 后续流程和方案一一致:Lambda解析事件数据,调用SES发送自定义邮件,权限和验证要求也相同。

关于SES的小误区

你之前看到SES里只有退信、投诉的SNS主题选项,那是SES用来接收自身运行事件的(比如邮件发送失败、被用户投诉),不是用来接收外部事件的。我们需要的是主动调用SES的发送API,而非让SES被动订阅事件,这是两个完全不同的场景。

注意事项

  • 权限配置:确保Lambda的IAM角色包含ses:SendEmail(或ses:SendTemplatedEmail)权限,以及CloudWatch Logs权限,方便排查问题。
  • SES验证:必须验证发件邮箱或域名,否则AWS会限制发送范围(默认只能发给已验证的邮箱)。
  • 测试:先手动触发一个RDS事件(比如手动创建快照),验证Lambda是否正确解析数据,邮件内容是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:53:18