我有如下需求--代碼需要呼叫一些API,獲得一些資料,并將其存盤在資料庫中(平面檔案也可以滿足我們的目的)。由于API可以訪問大量的記錄,我們想把它分成30個部分,每個部分從API中刮取某一部分的資料。我們希望這30個刮削器能在30臺不同的機器上運行--為此,我們有一個Python程式,它的作用如下:
隨后,我們將把這30個檔案的輸出合并到一個巨大的資料庫中。 問題是--為我們的目的使用哪個AWS工具?我們可以使用EC2實體,但我們必須在我們的桌面上保持EC2控制臺開放,在那里我們連接到它來運行Python程式,在我的筆記本電腦上保持30個連接開放是不可行的。在這些機器上獲得遠程桌面是非常復雜的,所以在那里登錄,啟動作業,然后斷開連接--這也是不可行的。
我們想要的是--啟動任務(30臺機器上各一個),讓它們自己運行并完成,如果可能的話,通知我(或者我可以自己定期檢查健康狀況)。
誰能指導我哪種AWS工具適合我們的目的,以及如何實作?
uj5u.com熱心網友回復:
"我們可以使用EC2實體,但我們必須在我們的桌面上保持EC2控制臺的開放,在那里我們連接到它,以達到我們的目的。 我們的桌面上打開EC2控制臺,在那里我們連接到它來運行Python程式"
這只是說明你運行腳本的方式是錯誤的,你需要考慮將其作為一項服務運行。
一般來說,你需要考慮在 SQS 中排隊等候這些任務,然后觸發 EC2 的自動擴展或 Lambda 函式,這取決于你的腳本是否將在 Lambda 運行時間限制內運行。
uj5u.com熱心網友回復:
這似乎是步驟函式的良好應用。步驟函式允許您將多個lambda函式、Glue作業和其他服務協調成一個業務流程。您可以撰寫呼叫API端點的lambda函式,并將結果存盤在S3中。一旦所有的資料被收集,你的步驟函式可以觸發一個lambda函式、glue job或其他東西,將資料處理到你的資料庫中。步驟函式有助于錯誤處理和重試,并允許輕松監控您的流程。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332534.html
標籤:
