如何在特定的时间表上运行托管在云中的简单python脚本?

时间:2017-01-25 16:49:35

标签: python amazon-web-services heroku cron

说我有一个文件" main.py"我只想让它以10分钟的间隔运行,但不能在我的电脑上运行。该文件使用的唯一外部库是mysql.connector和pip请求。

我尝试的事情:

PythonAnywhere - 免费层太有限(需要连接到外部数据库)

AWS Lambda - 仅支持Python 2.7,转换了我的代码但仍有问题

Google Cloud Platform + Heroku - 只能找到有关部署应用程序的教程,我认为这些可以做我想要的,但我无法弄清楚如何。

谢谢!

3 个答案:

答案 0 :(得分:0)

我首先看一下我之前在unix.stackexchange上提出的this问题/答案 - 我使用了一个AWS redhat安装,它可以免费使用。

确定VM后,可以使用任何SSH客户端将SSH添加到服务器上并上传Python脚本。个人偏好是this申请。

如果需要更新服务器上的Python版本,可以通过安装所需的Python RPM来完成此操作。快速谷歌应该返回yum [或你正在使用的RPM管理系统]存储库以获得所需的RPM。

一旦你安装了你需要的Python版本,我建议你查看可以用来安排工作的'crontab'。您可以将cronjob设置为每10分钟运行一次,这将调用您的脚本。

有关如何使用crontab的详细信息,请参阅this网站

答案 1 :(得分:0)

这听起来像AWS Lambda supports Python的完美用例。您可以使用Scheduled Events按计划调用Lambda。

我看到你尝试了Lambda并且它没有为你工作,这太糟糕了,因为这似乎是最简单的路线。您还可以启动EC2实例并使用userdata在实例启动时安排cron。

另一个选项是带有cron.yml的Elastic Beanstalk worker,用于定义您的日程安排。 Elastic Beanstalk支持Python 3.4。

答案 2 :(得分:0)

更新:AWS现在支持Python 3.6。在配置时,只需从运行时环境中选择Python 3.6。