我有一个要求,我需要使用 AWS lambda 函数来更新数据库导出。你可以想象我有一个.sql导出文件,我想将其导入到数据库中,对其运行大量sql查询,然后导出回sql。
这是一项日常活动,因此我希望让 AWS lambda 函数使用云监视 cron 调度来执行此操作。
我有以下想法可以尝试:
- 编译 MySQL,就像我们使用 docket mount/opt/lambda 目录编译其他 python 扩展并在 lambda Amazon 实例上运行此操作一样
- 启动 RDS 并对其运行操作,完成后将其销毁
- 启动 t2-micro 并在其上运行操作,完成后将其销毁
我尝试了选项 1,但没有成功。 如果您发现更好的主意,请提出建议。提前谢谢你。
我会推荐:
- 使用 Amazon CloudWatch Events 计划规则触发 AWS Lambda 函数
- 具有 Lambda 函数:
- 启动 AmazonRDS 数据库
- 使用用户数据启动 Amazon EC2实例,该实例从 Amazon S3 下载脚本并执行该脚本
该脚本将:
- 从亚马逊 S3下载数据
- 等待RDS 数据库准备就绪
- 将数据加载到 RDS 中
- 运行转换查询
- 运行导出并将其保存到 Amazon S3
- 终止RDS 实例
- 终止运行它的EC2 实例
t3.micro
Amazon EC2 实例仅为 1c/小时,并且不受 AWS Lambda 函数的 15 分钟时间限制的影响。RDS实例按小时计费。因此,整个过程成本相当低。
所有逻辑都将存储在存储在 S3 中的脚本中。因此,如果您想更改流程,只需修改脚本并将其存储在 S3 中即可。然后,您可以通过手动运行 Lambda 进程对其进行测试。