aws短信发送java_使用aws sns和lambda发送定期通知

我有以下用例场景,我正在考虑aws服务,看看我如何能够提出可扩展的解决方案 . 在此先感谢您的帮助!

场景:用户可以使用他们的电子邮件和电话注册一个应用程序(名为'Let's Remind'或其他名称) . 该应用程序做一件事是向用户发送电子邮件和短信警报 . 用户可以创建n个他想要提醒的任务 . 例如,他可以设置每月提醒支付卡会费 . 目前,n的值为每个用户5到10 . 通知是灵活的,意味着它可以是每日,每周,每月,每两周一次 . 用户还可以指定通知的开始日期 . 结束日期是事件到期的日期(例如,卡支付到期的那一天) . 此日期过期后,通知将在当前月份处于非活动状态 . 对于每周,每日,每两周一次的通知,一旦事件日期通过,通知将被删除 . 这些不是经常性的 . 对于每月经常性事件,例如公寓租金支付等,通知本身不会被删除,但会在活动截止日期后变为非活动状态 . 一旦下一个事件周期(通常是下个月付款用例的结算周期)开始,通知就会恢复生命并重新开始 . 使用可以随时删除任何事件 . 如果删除了某个事件,则该事件的通知也将被删除 .

首先,我希望用例很清楚 . 现在这里是关于解决这个用例的我的想法 -

1)使用SNS,因为我需要发送电子邮件和短信 . SES仅支持电子邮件 . 2)当用户注册应用程序时,创建2个订阅(一个用于他的电子邮件,一个用于他的短信 endpoints )并且还为用户创建主题(可能是动态生成的随机用户ID)3)一旦用户创建事件(例如提醒每月公寓租金),将事件数据存储在一个动态表中,例如userid,startdate,duedate,frequency,isactive . 4)创建一个lambda函数,当一个条目被写入dynamodb表时将被唤醒(步骤3);它将执行以下操作 - i)它将从dynamodb表中读取事件数据ii)根据当前日期和事件数据确定要发送的通知的下一个日期iii)对于活动事件(检查dynamodb的isActive列)记录)在cloudwatch事件中基于ii创建预定的cron表达式规则,并将目标添加为用户的主题(在上面的步骤2中创建) . 目前,通知消息是静态的 .

我对步骤iii有一些疑问/疑问 - 是否可以动态创建cloudwatch事件cron规则并按照我的描述动态添加用户主题作为目标?或者更好的是触发第二个lambda函数,专门用于使用SNS通知向用户的主题发送消息?哪种方法对这个用例更好?如果用户群变大,是否建议为每个用户创建一个主题?从可扩展性的角度来看,我通常采用上述方法吗?如果没有,有人可以建议任何更好的想法来实现这个用例吗?

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值