我正在将完全用python编写的内部公司工具移动到AWS生态系统,但是在确定设置数据的正确方法以使其保持井井有效方面存在问题。整个公司的人员都使用此工具,每个人都在自己的数据集上运行工具(大小从几兆字节到几千兆字节不等)。目前,用户将代码克隆到本地计算机,然后在本地运行该工具;我们现在正试图将此用法转移到云端。
对于一个人来说,让他们将数据上传到s3,然后将python代码指向该数据以运行该工具是很简单的,但是我担心随着越来越多的人开始使用该工具, s3存储将变得混乱/混乱。
此外,每个人可能会对python工具稍作更改,以便对其数据进行自定义处理。我们的代码托管在bitbucket服务器中,用户将为他们的自定义工作分配回购。
我的问题是:
如果有人对如何设置此项目有任何意见,或者有任何相关指南/文档的链接,我们将不胜感激。谢谢!
答案 0 :(得分:1)
你可以这样做。
a) A boto3 script to upload s3 data to specified bucket with maybe
timestamp appended to it.
b) Configure S3 bucket to send notification over SQS when a new item comes
c) Keep 2-3 EC2 machines running actively listening to SQS.
d) When a new item comes, it gets key from SQS.Process it.
Delete event from SQS after successful completion.
e) Put processed data in some place, delete the key from Bucket.
Notify user through mail.
对于自定义用户,他们可以创建一个新的分支并在上传的数据中提供它,ec2从那里读取它并检出所需的分支。在作业之后,可以删除分支。这可以是一行,其上有分支名称。这将涉及一次设置。您可能应该在EC2上使用某个进程管理器,如果它崩溃将重新启动进程。