2017-03-22 80 views
0

我有幾個lambda函數,所有這些函數都有一個共同的函數。由於它很常見,大部分代碼都在這個通用函數中。因此,爲特定函數考慮單獨的lambda函數是合理的。在AWS lambda服務中從其他lambda調用lambda是否是個好主意?

但是,當我考慮成本預期時,它讓我氣餒。我的意思是,調用一個lambda會自動調用另一個lambda。所以一個事件會僱用兩個不同的資源。而且它似乎並不符合我的成本效益。是這樣嗎?

回答

0

它一直都在做。我已經讓Lambdas按照時間表運行是確定性的,其中基於各種因素調用額外的Lambdas。

但是,你必須記住那個共同的「功能」在做什麼,以及這種影響不僅影響成本,而且影響性能。

當您在應用程序中構建無服務器應用程序或無服務器組件時,有兩種主要心態。您可以將AWS Lambda,Azure功能,Google Cloud Functions等視爲「真正的微功能」解決方案。或者,您可以將Lambda用作邏輯功能組(我仍然認爲「應用程序的一個功能」),您可以在一個Lambda中使用多個功能。兩者都是完全有效的方法,其中一個可能會導致調試時更少的麻煩=)

如果您有幾個Lambdas的通用功能,您可能需要考慮在處理另一個Lambda之前在代碼中進行處理。我的意思是像包或庫一樣。例如,使用Node.js,您只需使用NPM導入該常用函數,以便您可以從一個位置對其進行維護,並根據需要更新依賴它的任何內容。

儘量不要將「雲計算函數」這樣直譯出來,並將每個函數拆分爲新的Lambda。

請記住,Lambda有一個最低收費標準,因爲它會向上舍入到最近的100ms。所以,如果你打電話給一些實際運行速度非常快的常用功能......我不會將它分離出一個新的Lambda。你會付出更多,但你的表現也會受到阻礙。

您的里程會與其他任何不同。雲功能有助於我們思考一個全新的維度。雖然它們非常方便,但如果不仔細計劃,它們實際上可能會降低性能並增加成本。