在AWS中计划自动电子邮件

时间:2018-10-26 12:20:27

标签: amazon-web-services aws-lambda amazon-elastic-beanstalk aws-batch

我最近使用弹性beantalk和MERN(MongoDB,Express,React,NodeJS)堆栈创建了我的第一个AWS Web应用程序,现在我需要每天查询数据库以触发电子邮件。

最初,我在考虑只在Web服务中创建一个处理查询+电子邮件逻辑的钩子,因为我已经在Web服务中拥有了所有必要的模型/连接,并且每天只需要执行一次批处理工作即可调用该钩子。 Web服务挂钩,但是它需要发送凭据并通过https对其进行调用。

或者,我可以在一个单独的批处理程序中重新编码所有的smtp /数据库模型和连接,以运行查询并发送电子邮件。

您认为在不使用新的独立EC2实例的情况下使用AWS更好/可行的选择是什么? AWS Batch或Lambda会更有意义吗?我需要一些可以每天在同一时间安排这些数据库查询和电子邮件的东西。

2 个答案:

答案 0 :(得分:0)

由于您需要每天在同一时间安排任务;您可以考虑的另一种选择是设置工作环境,在其中可以使用 cron.yaml 文件部署应用。 然后,您所需要做的就是更新安全组,并由工作人员授予对数据库的访问权限。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-periodictasks

答案 1 :(得分:0)

AWS有丰富的工具集可以解决此类要求。

  1. AWS Lambda可以安排为定期运行。
  2. 生成要作为JSON发送的数据(电子邮件的详细信息)
  3. 将json放入SQS
  4. 使用另一个AWS Lambda读取SQS以批量发送电子邮件

与EC2实例相比,该解决方案具有可伸缩性,可维护性,并且成本也将大大降低。