我得到了寫(xiě)成 go AWS lambda 函數(shù)的訂單微服務(wù)。API Gateway綁定的名為order-service的主函數(shù)。它接收多個(gè)參數(shù),如user_id:int, product_ids:arrayint,創(chuàng)建帶有工件的訂單并返回帶有 order_id 和總價(jià)的序列化訂單。此函數(shù)調(diào)用一個(gè)名為 order-item 的函數(shù),該函數(shù)創(chuàng)建一個(gè)訂單項(xiàng)并并行返回它們(每個(gè)產(chǎn)品)。這些功能調(diào)用產(chǎn)品和用戶(hù)功能以通過(guò)其 ID 檢索有關(guān)用戶(hù)和產(chǎn)品的信息。然后,訂單函數(shù)調(diào)用另一個(gè)名為 fee-function 的 lambda,它只接受總價(jià)和用戶(hù) ID 并返回費(fèi)用價(jià)格。當(dāng)然,它會(huì)調(diào)用一些其他函數(shù),如用戶(hù)函數(shù)等?;旧?,這是服務(wù)一般如何工作的一個(gè)簡(jiǎn)單示例。任何功能都會(huì)調(diào)用其他功能,例如用戶(hù)折扣、州稅等。問(wèn)題是:order function 通過(guò)Amazon 調(diào)用fee function 是不是很好,但是它可以只導(dǎo)入fee handler 包并在自己內(nèi)部運(yùn)行它?(但是,fee 函數(shù)可以從外部調(diào)用,所以它也必須作為一個(gè)單獨(dú)的函數(shù)部署)每個(gè)函數(shù)只接收用戶(hù) ID 并加載調(diào)用用戶(hù)函數(shù)的用戶(hù)是不是很好?也許,更好地預(yù)加載它并在任何地方傳遞它?還有別的嗎?一個(gè)函數(shù)調(diào)用其他函數(shù)然后調(diào)用其他函數(shù)等等這樣好嗎?我的情況有更好的方法嗎?使用 SNS、Step 函數(shù)、依賴(lài)注入/aws 層。之所以問(wèn),主要是為了承受幾千轉(zhuǎn),不付出太多。感謝您的幫助。我很欣賞這個(gè)。
1 回答

慕虎7371278
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
這正是創(chuàng)建 Step Functions 的目的。您可以從API Gateway調(diào)用 Step Functions 狀態(tài)機(jī),就像調(diào)用 Lambda 一樣。
使用 Step 函數(shù),您可以:
調(diào)用帶參數(shù)的狀態(tài)機(jī)
編排調(diào)用 Lambda 函數(shù)的順序
使用狀態(tài)存儲(chǔ)每個(gè) lambda 的輸入和輸出
有決策點(diǎn)根據(jù)前一個(gè)函數(shù)的輸出采取不同的路徑
- 1 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報(bào)
0/150
提交
取消