我一直在研究这个项目,因为让整个系统成为Lambda函数集合的想法似乎非常有吸引力.事实上,几年前我写了一些与MoonMail几乎完全相同的软件,并且由于某些规格已经改变而需要更新.我正在评估将我的软件移植到Lambda或只是调整使用MoonMail的东西.
我有以下问题:
在我使用Serverless的测试中,我注意到当我更改资源名称(如DynamoDb表的名称)并重新部署时,没有警告,旧表及其内容被销毁.我认为像配置文件中的额外字符这样的简单错误导致删除数据库中的所有数据是非常危险的.你是如何处理这类问题的?
关于通过SES发送电子邮件.当您达到特定帐户的发送限制时,如何处理限制?你做指数退避吗?我似乎无法在代码库中找到它.如果你能指出我在回购的一般区域发生这种情况,我将非常感激.
MoonMail的表名存储在s-templates.json中.这个文件很少被触及,因此团队还没有遇到过这个问题,但确实存在危险,我会向AWS团队询问如何通过简单地在CF中重命名来避免丢弃表.
它在使用Cloud Watch调用发送限制案例时重试(如果我错了,MM团队会纠正我,但99%确定我不是).
您可以DeletionPolicy: Retain
在创建DynamoDB表时进行设置,以防止Cloud Formation意外删除它们.
如果您的Lambda被SNS调用,那么当超出SES限制时您可能会失败.然后,SNS将使用补偿重新尝试交付.