Amazon SQS,Boto和Python:在Amazon EC2上获取和运行脚本

Mic*_*ael 3 python amazon-s3 amazon-ec2 boto

我想在Amazon EC2上运行一组python脚本.本帮助指南建议使用Amazon SQS管理队列.从本指南中,我了解了如何启动EC2实例并从我的计算机将作业发送到队列,但我不明白如何设置EC2实例,以便在从中获取后运行python脚本队列然后将结果保存到Amazon S3.如何获取,在EC2服务器上运行,并将结果保存到python脚本的S3?

alk*_*lko 5

在上述指南中,您可以找到带有示例代码的github存储库的链接.这是一个有效的例子,回答你的问题.它有很好的文档记录,易于阅读.

即,仔细查看pdf/tasks.py源代码.简而言之,它用于使用ec2.run_instancesbootstrap bash脚本启动ec2实例:

  • 使用更新实例 apt-get
  • 在循环中用于boto.connect_sqs连接到SQS并获取任务
  • 执行任务
  • 用于boto.connect_s3()连接S3并上传结果
  • 脚本完成时关闭实例.

UPDATE

此外,它CheckResponseQueueTask是一个很好的例子,用于Celery.PeriodicTask从中SQS处理消息并对其进行处理.查看BOOTSTRAP_SCRIPT源代码行51-57,了解示例结果上传到S3的示例代码.并且CheckQueueLevelsTask说明了在任务数量超过实例数的情况下,使用队列处理器进行新实例启动和引导.第214-244行供参考.