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