![](/img/trans.png)
[英]Angular SSR on AWS serverless lambda returns random numbers and characters
[英]AWS Lambda timeout when using Angular Material (MatBottomSheet) & SSR
經過幾個小時的調查,我發現了以下問題:
我的設置:
建立步驟:
到現在為止還挺好。 一切正常,直到我開始使用MatBottomSheet。 當我將此服務注入組件時,似乎沒有什么特別的。
在本地沒有問題,為發展服務(有效)。 創建生產版本並將其托管在本地也可以。
將其部署到lambda時發生了奇怪的事情。 部署似乎還可以。 但是,當我通過AWS Gateway->調用lambda方法訪問應用程序時。 我收到內部服務器錯誤。
在lambda日志中,我看到超時了。 (我嘗試將超時時間更改為最多10s,因此將a設置為短時間不是問題。) 通常情況下,渲染整個網站需要70毫秒,但是很好。
看起來像無休止的循環/死鎖或循環調用等。無論使用何種材料代碼,都將無服務器包裝用於lambda。
我花了幾個小時才找到實際問題所在。 BEC。 cloudwatch和所有其他AWS日志都在運行。 當您超時時保持沉默。 當我從我的應用程序中刪除MatBottomSheet時,一切又恢復了。
僅供參考:我不必直接使用MatBottomSheet。 將其注入組件中就足夠了。 導入模塊而不注入服務也可以。
我已經嘗試過的:
通常,我的Lambda服務器代碼使用expressjs,包裝在aws-express中。
所以我修改了expressjs代碼->僅返回靜態文件,而不渲染任何內容。 ->結果沒有改變,我超時了。
我嘗試的下一件事:在本地調用lambda方法(使用無服務器),一切正常。
我在本地使用了相同的Nodejs版本(8.10),該版本與AWS Lambda使用的版本相同。 ->超時錯誤...
如果有人知道如何解決此問題,那真是太棒了。
我的解決方法:使用不帶SSR的lambda,或不使用lambda ...
謝謝
我解決了問題,並希望分享我的結果。 希望沒人能再解決這個問題了。
經過一整天的調試,捆綁了一些代碼。 問題是:我的lambda函數必須減少內存
我為lambda函數使用了128Mb內存。 即使我將超時增加到60秒,這里的事情也很奇怪。 我仍然遇到超時錯誤。
將內存增加到192Mb之后,該方法在1.5秒內完成。
希望亞馬遜能夠改善他們的錯誤輸出。 似乎我的lambda函數沒有完成,在內存不足時運行,導致超時
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.