簡體   English   中英

在AWS lambda上運行graphql應用程序

[英]Running a graphql app on AWS lambda

我正在嘗試在AWS lambda上運行apollo graphql服務器。 服務器的當前架構是這樣的 -

一個主要的lambda函數,它保存模式,這是客戶端與之交談的功能。 此函數中的每個解析器都會調用其他lambda函數來保存解析器的核心邏輯。 使用lambda.invoke方法調用其他lambda函數。

一堆其他lambda函數,每個函數都包含特定任務的邏輯。 這些將由主lambda函數中的解析器使用。 這些函數還與dynamoDB通信以進行存儲。

問題 - 客戶端發出請求,主lambda函數接收它,調用另一個lambda函數獲取結果,main函數獲取結果,將結果返回給用戶。 主lambda函數不必要地運行,直到它從它調用的lambda函數返回結果為止。 這是增加成本,也可能有超過2個級別的鏈。

建議的一個解決方案是將所有內容都集中到一個功能中。 但是將來難以擴展嗎? 當它增長時,我將再次開始面臨同樣的問題。

如何通常人們在lambda上構建他們的graphql服務器?

我已經在生產中運行了“將所有內容整合到一個lambda函數”架構中大約一年,它可以很好地擴展(數百個用戶請求龐大的GIS數據,團隊由5個左右的開發人員構建解析器)。

如果您願意,我已經在GitHub上編寫了一個參考實現: https//github.com/rozenmd/graphql-resolvers/tree/master/api

通常我們會將resolvers.js拆分到自己的文件夾中,每個數據庫模型都有一個文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM