Aws Lambda运行SQL脚本

时间:2019-04-17 14:12:46

标签: mysql aws-lambda

我有一个需要使用AWS lambda函数更新数据库导出的需求。您可以想象我有一个要导入到数据库中的.sql导出文件,在该数据库上运行许多sql查询,然后再导出回sql。

这是一项日常活动,因此我想让AWS lambda函数使用cloudwatch cron调度来完成它。

我有以下想法可以尝试:

  1. 编译MySQL就像我们使用摘要目录/ opt / lambda目录编译其他python扩展并在lambda亚马逊实例上运行此操作
  2. 启动RDS并在其上运行操​​作,完成后销毁它
  3. 启动t2-micro并对其进行操作,完成后将其销毁

我尝试了选项1,但未成功。 如果您有更好的主意请提出建议。先感谢您。

1 个答案:

答案 0 :(得分:1)

我建议:

  • 使用Amazon CloudWatch Events预定规则来触发AWS Lambda函数
  • 具有Lambda函数:
    • 启动Amazon RDS数据库
    • 使用用户数据启动Amazon EC2实例,该实例从Amazon S3下载脚本并执行该脚本

脚本将:

    从Amazon S3
  • 下载数据
  • 等待直到 RDS数据库准备就绪
  • 加载数据到RDS
  • 运行转化查询
  • 运行导出并将其保存到Amazon S3
  • 终止 RDS实例
  • 终止正在运行的 EC2实例

t3.micro的Amazon EC2实例每小时仅为1c,并且不受AWS Lambda函数的15分钟时间限制的影响。 RDS实例每小时收费。因此,整个过程相当低成本

所有逻辑将存储在S3中存储的脚本中。因此,如果要更改过程,只需修改脚本并将其存储在S3中。然后,您可以通过手动运行Lambda进程对其进行测试。