2017-04-01 50 views
0

我有一個相當複雜的lambda function,這是退出中期操作,沒有明顯的解釋。如何確定爲什麼我的AWS Lambda函數在沒有錯誤的情況下退出?

沒有接近其時間或內存限制的位置,它突然在日誌中有END和REPORT,並且沒有錯誤報告。

請注意,它不會掛起;這是一個非常短的執行。有沒有一種方法可以讓Node中的某些東西在沒有它的情況下導致錯誤被報告?

我該如何深入研究?我已經對代碼進行了多次審計,並且它在運行並行異步命令的循環中退出很深。我沒有檢測到任何回調引發的錯誤。它只是停止。

+0

通常沒有segfaults,除非你使用這樣一個糟糕的本地擴展。 –

+0

你是否超時? – abdulbarik

+0

你是否得到這樣的超時時間:https://serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231? –

回答

0

經過相當深入的調查後,我認爲問題在於AWS Lambda正在終止執行,因爲沒有剩餘進程在等待。請記住,默認情況下,lambda不會因爲您調用主回調或上下文而停止執行,並且會繼續執行。除非設置了上下文中的特殊標誌,否則它將繼續運行,直到超時或直到所有進程完成。在我的情況中,我將它追蹤到node-apn包中的一個錯誤,其中一個承諾在推送通知後沒有回來。目前還不清楚是否有解決方案。