我想在Amazon EC2上运行一组
python脚本.此
help guide建议使用Amazon SQS管理队列.从本指南中,我了解了如何启动EC2实例并从我的计算机将作业发送到队列,但我不明白如何设置EC2实例,以便在从中获取后运行python脚本队列然后将结果保存到Amazon S3.如何获取,在EC2服务器上运行,并将结果保存到python脚本的S3? 最佳答案 在上述指南中,您可以找到带有示例代码的
github repository的链接.这是一个有效的例子,回答你的问题.它有很好的文档记录,易于阅读.
即,仔细查看pdf/tasks.py源代码.简而言之,它使用ec2.run_instances通过bootstrap bash脚本启动ec2实例:
>使用apt-get更新实例
>在循环中使用boto.connect_sqs连接到SQS并获取任务
>执行任务
>使用boto.connect_s3()连接到S3并上传结果
>脚本完成时关闭实例.
UPDATE
此外,CheckResponseQueueTask是一个很好的例子,它使用来自SQS的Celery.PeriodicTask来处理它们并对它们进行处理.查看BOOTSTRAP_SCRIPT,源代码行51-57,以获取说明上传到S3的结果的示例代码. CheckQueueLevelsTask说明了在任务数量超过实例数的情况下,使用队列处理器进行新实例启动和引导.第214-244行供参考.