如何疑難排解 Lambda 函數「執行期結束」錯誤?

1 分的閱讀內容
0

我的 AWS Lambda 函數傳回一個「執行期結束」錯誤。

簡短描述

Lambda 執行期錯誤會傳回類似下列內容的狀態碼:

{
    "errorType": "Runtime.ExitError",
    "errorMessage": "RequestId: 1234aa1b-cd50-6c78-90cd-ce1234ce9950 Error: Runtime exited with error: exit status 129"
}

解決方案

請遵循這些最佳實務來檢閱 Lambda 函數程式碼、找出根本原因,然後疑難排解執行期錯誤。

  • 檢查函數程式碼是否有明確呼叫結束程式碼的語法,例如,process.exit(0)exit()quit()os.Exit()Environment.Exit() 等等。如果函數程式碼包含任何這些結束程式碼,則移除這些代碼,或使用有效的 return 陳述式取代。
  • 檢閱 Lambda 函數的 Amazon CloudWatch 日誌,並檢查函數記憶體。Lambda 根據設定的記憶體數量依比例分配 CPU 運算效能。您可能需要增加記憶體數量。您可以設定分配給 Lambda 函數的記憶體數量,介於 128 MB 到 10,240 MB 之間。您也可以最佳化程式碼,以減少耗用的資源數量。如需詳細資訊,請參閱記憶體和運算效能
  • 如果該函數連線到後端資料庫,則可能會發生過多的連線。為避免不必要的連線,請在函數處理常式之外初始化資料庫連線。後續的 Lambda 函數叫用請求可以重複使用這些資料庫連線。如需詳細資訊,請參閱使用 AWS Lambda 函數的最佳實務
  • 叫用 Lambda 函數時嘗試重複使用閒置連線會導致連線錯誤。若要保持持久連線,請使用與執行期關聯的 keep-alive 指令。如需詳細資訊,請參閱在 Node.js 中以 keep-alive 重複使用連線
  • 檢查 Lambda 函數是否因為檔案描述元和執行緒限制為 1,024而發生「記憶體不足」錯誤。在函數上開啟 Lambda Insights 增強型監控。您可以使用專門的查詢語法搜尋和分析記憶體使用量指標的日誌資料。例如,您可以監控 fd_use 指標。這些指標存放在名稱為 /aws/lambda-insights的日誌群組中。如需詳細資訊,請參閱 Lambda Insights 收集的指標

相關資訊

如何確定我的 Lambda 函數是否逾時?

AWS 官方
AWS 官方已更新 2 年前