0

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

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

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

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

4

2 回答 2

0

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

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

于 2018-11-05T14:35:43.733 回答
0

AWS 拥有丰富的工具集来解决此类需求。

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

该解决方案具有可扩展性、可维护性,并且与 EC2 实例相比,成本也将非常低。

于 2019-07-16T08:34:21.410 回答