AWS CDK中为SNS订阅添加多个邮箱报错,如何解决?
解决SNS订阅添加多个邮箱地址的问题
问题场景
在CDK代码中尝试为SNS主题添加多个邮箱订阅时,出现错误提示:Invalid parameter email address,但仅添加单个邮箱时可正常运行。原代码如下:
// Adding an SNS action and an email registration const notificationsTopic = new Topic(this, 'Topic'); numFailedJobsAlarm.addAlarmAction(new SnsAction(notificationsTopic)); notificationsTopic.addSubscription(new EmailSubscription('rd@bak.de, ak@bak.de'));
解决方案
AWS SNS的EmailSubscription每个实例仅支持绑定单个邮箱地址,无法通过逗号分隔的字符串一次性添加多个邮箱。正确的做法是为每个邮箱单独创建一个EmailSubscription实例,并分别调用addSubscription方法。
修正后的代码:
// Adding an SNS action and email registrations const notificationsTopic = new Topic(this, 'Topic'); numFailedJobsAlarm.addAlarmAction(new SnsAction(notificationsTopic)); // 为每个邮箱单独创建订阅 notificationsTopic.addSubscription(new EmailSubscription('rd@bak.de')); notificationsTopic.addSubscription(new EmailSubscription('ak@bak.de'));
原因说明
SNS的订阅机制要求每个订阅条目对应一个独立的端点(邮箱、短信、Lambda等),因此EmailSubscription的构造函数仅接受单个邮箱地址参数,传入多地址的字符串会被判定为无效参数,触发报错。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

