Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将EC2与自动缩放组一起用于AWS上的批处理图像处理应用程序_Python_Amazon Web Services_Amazon Ec2_Batch Processing_Boto - Fatal编程技术网

Python 将EC2与自动缩放组一起用于AWS上的批处理图像处理应用程序

Python 将EC2与自动缩放组一起用于AWS上的批处理图像处理应用程序,python,amazon-web-services,amazon-ec2,batch-processing,boto,Python,Amazon Web Services,Amazon Ec2,Batch Processing,Boto,我是AWS的新手,正在尝试将基于python的图像处理应用程序移植到云端。我们的应用程序场景类似于这里描述的批处理场景 [media.amazonwebservices.com/architecturecenter/AWS\u ac\u ra\u batch\u 03.pdf] 具体而言,所涉及的步骤包括: 接收大量图像(>1000)和一个包含图像元数据的CSV文件 解析CSV文件并创建数据库(使用dynamoDB) 将图像推送到云端(使用S3),并推送形式为(bucketname,keynam

我是AWS的新手,正在尝试将基于python的图像处理应用程序移植到云端。我们的应用程序场景类似于这里描述的批处理场景 [media.amazonwebservices.com/architecturecenter/AWS\u ac\u ra\u batch\u 03.pdf]

具体而言,所涉及的步骤包括:

  • 接收大量图像(>1000)和一个包含图像元数据的CSV文件
  • 解析CSV文件并创建数据库(使用dynamoDB)
  • 将图像推送到云端(使用S3),并推送形式为
    (bucketname,keyname)
    到输入队列(使用SQS)
  • 来自输入队列的“Pop”消息
  • 从S3获取适当的图像数据,从dynamoDB获取元数据
  • 处理
  • 更新dynamoDB中该映像的相应条目
  • 将结果保存到S3
  • 在输出队列(SQS)中保存一条消息,该队列将为 管道
  • 步骤4-9将涉及使用EC2实例

    从boto文档和在线教程中,我了解了如何将S3、SQS和dynamoDB整合到管道中。然而,我不清楚如何准确地进行EC2的纳入。我试着在线查看一些示例实现,但不知道EC2机器应该做些什么来让批处理图像处理应用程序工作

  • 使用带有不断轮询的无限循环的
    BOOTSTRAP\u脚本
    输入队列ad处理消息(如果可用)。这就是我想要的 AWS博客上的Django PDF示例正在进行思考
  • 使用
    boto.services
    处理阅读的所有细节 消息、在S3中检索和存储文件、编写消息等。 这就是monster muck mashup示例中使用的内容
  • 对于批处理应用程序,上述哪种方法是首选的,或者有更好的方法吗?此外,对于上面的每一项,我如何结合使用Auto scaling group来根据输入队列中的负载管理EC2机器。
    在这方面的任何帮助都将不胜感激。谢谢。

    您应该编写一个应用程序(例如使用Python和Boto)来执行SQS轮询并与S#和DynamoDB交互

    此应用程序必须在启动时安装在EC2实例上。有几个选项可用(CloudFormation、Chef、CloudInit和用户数据或自定义AMI),但我建议您从这里描述的用户数据开始

    您还必须确保您的实例具有与S3、SQS和DynamodDB对话的适当权限。您必须为此创建IAM权限。然后将权限附加到角色,并将角色附加到实例。有关详细程序,请参见以下文档: