當前場景:我們正在使用一些java代碼處理40M記錄,并將其作為csv文件上傳到s3存儲桶。未來:我們希望將此代碼移動到 AWS,為此,我們希望有一個 python 腳本來處理記錄并將其作為 csv 文件加載到 aws-s3 存儲桶中。你能建議最好的方法,可以觸發腳本和處理數據嗎?我們希望避免使用 EC2 并在服務器中托管 python 腳本。我們希望將其作為無服務器服務。我的方法:我想過使用 AWS-Glue 執行此操作,使用觸發器(基于自動/基于時間)啟動作業,并將我的代碼放在作業內的腳本中。這是一個好方法嗎?
2 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
您可以使用AWS Fargate,考慮到Lambda的最大執行時間為15分鐘,它可以與Lambda集成,因此您應該使用Fargate。
更多詳情 https://serverless.com/blog/serverless-application-for-long-running-process-fargate-lambda/
此外,您還可以使用 AWS 事件規則來安排它
外觀解決方案始終存在。但是有好的做法和壞的做法。
如果我告訴你,你可以只用AWS lambda和AWS EventRule來做到這一點,而SQS聽起來會如何。有趣?
簡而言之,你可以做到這一點。跟蹤 lambda 中消耗的時間,當它達到 14 分鐘時,向 SQS 發送一條消息,指示您已處理的行號,將處理的文件上傳到 s3,然后退出。使用該 SQS 再次觸發 lambda,并將一些消息保留期定為 30 秒,以再次調用相同的 lambda 并從該行號開始。完成所有處理后,您將在 S3 中擁有多個已處理的文件,請使用另一個 lambda 和 SQS 將它們合并為一個。這不是一個壞的做法,但在我看來不太好,快樂?

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
您可以使用 Cloudwatch 事件規則定期調用您定義的計劃,并將 lambda 函數作為其目標。這是 AWS 文檔中有關如何執行此操作的教程。
添加回答
舉報
0/150
提交
取消