您好,登錄后才能下訂單哦!
Serverless如何實現(xiàn)在線遠(yuǎn)程調(diào)試,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
在線調(diào)試是云函數(shù)為了解決用戶在本地搭建調(diào)試環(huán)境復(fù)雜,云上環(huán)境不便于定位等問題推出的功能。
云上的各種服務(wù),在本地?zé)o法完全模擬,程序員大都遇到過本地和遠(yuǎn)程環(huán)境運(yùn)行結(jié)果不一致的情形,追查起來費(fèi)時費(fèi)力,不僅效率低下,也造成非常郁悶的工作體驗。所以,能否直接在遠(yuǎn)程環(huán)境中完成全部的開發(fā)流程,是提升開發(fā)體驗的最直接手段,然而在其他問題都解決后,遠(yuǎn)程調(diào)試功能是最后的一公里。
下面將以一段內(nèi)存泄漏的代碼為例,給大家展示如何使用云函數(shù)在線調(diào)試功能定位和解決問題。Node10 及以上版本的 runtime,使用 Chrome 瀏覽器打開云函數(shù)控制臺,在函數(shù)代碼頁即可看到在線調(diào)試的入口。
使用Chrome瀏覽器打開函數(shù)代碼編輯頁,可以看到在【遠(yuǎn)程調(diào)試】頁。為保障調(diào)試的體驗,開啟調(diào)試模式將修改函數(shù)的部分配置,包括函數(shù)進(jìn)入單實例模式、函數(shù)超時時間修改為900秒等。開啟前請務(wù)必確認(rèn)這些調(diào)整。
待加載完成后,頁面將自動展示入口文件。
使用快捷鍵 Cmd + P(Mac)或 Ctrl + P(Windows)可以打開所需要的文件。但大家可能會發(fā)現(xiàn),剛開啟調(diào)試模式時,打開文件的列表中找不到所需要的文件。 這是因為對于動態(tài)腳本語言來說,調(diào)試器不會加載所有的內(nèi)容,只會加載執(zhí)行過的文件。我們先點擊測試,讓函數(shù)運(yùn)行一次。在運(yùn)行一次后,我們就可以打開所需要的文件了。
在代碼前點擊即可設(shè)置斷點,在右上角的工具中可以進(jìn)行繼續(xù)執(zhí)行、跨步執(zhí)行、單步執(zhí)行等操作,也可以靈活地啟動或禁用斷點。
這部分介紹如何使用內(nèi)存快照功能排查內(nèi)存泄漏的問題。內(nèi)存泄漏的排查方法大致為:找準(zhǔn)內(nèi)存泄漏的時機(jī),在泄漏的前后對內(nèi)存進(jìn)行快照,通過對比快照的內(nèi)容判斷內(nèi)存泄漏的問題點。
首先,我們將調(diào)試的窗口切換到 Memory 頁面,點擊左上方的實心圓形按鈕捕捉內(nèi)存快照。
這樣,我們就有了運(yùn)行前的內(nèi)存快照?,F(xiàn)在我們執(zhí)行存在內(nèi)存泄漏的代碼。這行代碼有一個從未清理的全局緩存,隨著調(diào)用的增加,越來越占內(nèi)存。
隨后,我們進(jìn)行第二次內(nèi)存快照,打開對比頁面,通過對Delta值的分析,可以發(fā)現(xiàn) concatenated string 這個部分增加了很多,很有可能有問題。
打開以后,便可以發(fā)現(xiàn)內(nèi)存中多存儲了很多“recording time”的數(shù)據(jù)。
這些重復(fù)性的數(shù)據(jù)也就意味著代碼中出現(xiàn)了內(nèi)存泄漏,在代碼中找到相關(guān)內(nèi)容,進(jìn)行調(diào)整,解決內(nèi)存泄漏的問題。
除了云函數(shù)的控制臺,也可以使用 Serverless Framework Dev 模式開啟在線調(diào)試的功能。
關(guān)于Serverless如何實現(xiàn)在線遠(yuǎn)程調(diào)試問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。