AWS:我可以使用啥来在 RDS 上运行定期任务?
Posted
技术标签:
【中文标题】AWS:我可以使用啥来在 RDS 上运行定期任务?【英文标题】:AWS: What can I use to run periodic tasks on RDS?AWS:我可以使用什么来在 RDS 上运行定期任务? 【发布时间】:2017-11-03 12:43:59 【问题描述】:在特定的 RDS 列中作为日期,我会在用户试用结束时保留该信息。
我将每天检查数据库中的这些日期,当离试用期结束的时间还不到几天时,我想发送一封电子邮件(带有 SES)。
如何在 AWS 中运行定期任务来检查数据库?我知道我可以使用:
拉姆达 EC2(或 Elastic Beanstalk)还有其他我错过的解决方案吗?
【问题讨论】:
你只会在这里得到这类问题的意见,堆栈不是这个问题的最佳位置。此外,恕我直言,您已经有了最好的解决方案,即使用 Cloudwatch 安排的 Lambda。 你没有提到哪种RDS。 RDS Aurora for mysql 有一个内置的事件调度程序,可以从 RDS 本身内部生成 Lambda 函数。 【参考方案1】:您也可以为此使用AWS Batch。如果工作繁重且需要更多时间来完成,这更适合。
【讨论】:
【参考方案2】:检查需要多长时间?如果花费不到 300 秒并且在 Lambda 的限制范围内 (AWS Lambda Limits),则使用 Lambda 安排任务:Schedule Expressions Using Rate or Cron
否则,最好的选择是使用:AWS Data Pipeline。非常容易定期安排和运行您的自定义脚本。它至少会为实例收费一小时。
【讨论】:
【参考方案3】:和 lamda 一起去here
您可以创建一个 Lambda 函数并指示 AWS Lambda 定期执行它。您可以指定固定速率(例如,每小时或每 15 分钟执行一次 Lambda 函数),也可以指定 Cron 表达式。
【讨论】:
以上是关于AWS:我可以使用啥来在 RDS 上运行定期任务?的主要内容,如果未能解决你的问题,请参考以下文章
停止并启动在 EC2 和 mysql RDS 上运行 php 的 AWS Elastic Beanstalk
在 AWS Elastic BeanStalk 上运行的 Spring Boot 应用程序中配置 AWS RDS
Laravel 7- AWS - 运行“php artisan migrate”时出现 Elastic Beanstalk + RDS 错误