簡體   English   中英

如何確定我的 AWS Lambda 函數退出且沒有錯誤的原因?

[英]How can I determine why my AWS Lambda function is quitting without an error?

我有一個相當復雜的lambda function ,它在沒有明顯解釋的情況下退出了操作。

它離它的時間或內存限制還很遠,它突然在日志中只有一個 END 和 REPORT,沒有報告任何錯誤。

請注意,它不會掛起; 這是一個很短的執行。 有沒有辦法讓 Node 中的某些東西可以 Segfault 而不會導致報告錯誤?

我如何更深入地研究這個? 我已經多次審核了代碼,並且它在運行並行異步命令的情況下退出了非常深的循環。 我沒有檢測到任何回調引發的錯誤。 它只是停止。

經過相當深入的調查之后,我認為問題在於AWS Lambda正在終止執行,因為沒有剩余的流程在等待。 請記住,默認情況下,lambda不會僅因為您調用主回調或上下文而停止執行,而是會繼續執行。 除非在上下文中設置了特殊標志,否則它將繼續運行直到超時或所有過程完成。 就我而言,我將其追溯到node-apn包中的一個錯誤,該錯誤中在推送通知后諾言沒有回來。 除了暫時將其解決之外,尚不確定其他解決方案。

我在async function調用之前錯過了await之后遇到了這個問題。

我花了很長時間試圖找出為什么它在它記錄的最后一點失敗 - 每次運行總是相同的(偶然的,或者更確切地說是花費的時間)。

如果您沒有在日志中看到超時消息,我的意思是在 lambda 的 cloudwatch 日志組中,並且您已成功調用 (2xx),這意味着來自 lambda 的所有處理都已完成。

那么你應該檢查你的處理程序中的異步代碼/回調

暫無
暫無

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

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