選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 AWS Lambda 函數中管理 Gremlin WebSocket 連線

焦點模式
在 AWS Lambda 函數中管理 Gremlin WebSocket 連線 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

如果您使用 Gremlin 語言變體來查詢 Neptune,驅動程式會使用 WebSocket 連線來連線到資料庫。WebSockets 旨在支援長期用戶端伺服器連線案例。 AWS Lambda另一方面, 旨在支援相對短暫且無狀態的執行。使用 Lambda 查詢 Neptune 時,這種在設計理念上的不相符可能會導致一些非預期的問題。

AWS Lambda 函數會在執行內容中執行,該內容會將函數與其他函數隔離。執行內容是在第一次調用函數時建立的,並且可在後續調用相同函數時重複使用。

不過,任何一個執行上下文永不會用來處理函數的多個並行調用。如果多個用戶端同時調用您的函數,Lambda 會為每個函數執行個體啟動額外的執行內容。所有這些新的執行內容可能轉而在後續的函數調用中重複使用。

在某些時間點,Lambda 會回收執行內容,特別是在它們已閒置一段時間的情況下。 透過 Lambda 延伸模組, 會 AWS Lambda 公開執行內容生命週期,包括 InitInvokeShutdown階段。使用這些延伸模組,您可以撰寫程式碼,在回收執行內容時清除外部資源,例如資料庫連線。

常見的最佳實務是在 Lambda 處理常式函數之外開啟資料庫連線,以便可在每次呼叫處理常式時重複使用。如果資料庫連線在某個時候中斷,您可以從處理常式內部重新連線。不過,使用此方法存在連線洩漏的危險。如果閒置連線在執行內容銷毀後長時間保持開啟狀態,則間歇性或突發性 Lambda 調用案例可能會逐漸洩漏連線並耗盡資料庫資源。

Neptune 連線限制和連線逾時已隨著較新的引擎版本而變更。以前,每個執行個體最多支援 60,000 個 WebSocket 連線。現在,每個 Neptune 執行個體的並行 WebSocket 連線數目上限會隨執行個體類型而有所不同

此外,從引擎 1.0.3.0 版開始,Neptune 會將連線的閒置逾時從一小時縮減至大約 20 分鐘。如果用戶端未關閉連線,連線會在 20 到 25 分鐘的閒置逾時後自動關閉。 AWS Lambda 不會記錄執行內容生命週期,但實驗顯示新的 Neptune 連線逾時與非作用中的 Lambda 執行內容逾時相符。回收非作用中執行內容時,其連線很有可能已被 Neptune 關閉,或者之後很快就會關閉。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。