您好,登錄后才能下訂單哦!
小編給大家分享一下Serverless的開發(fā)者工具怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
從一個開發(fā)者的角度而言,Serverless 開發(fā)和傳統(tǒng)的開發(fā)方式相比發(fā)生了很大的改變。開發(fā)者習慣了在本地進行開發(fā),調(diào)試,測試和持續(xù)集成,持續(xù)部署等流程,在面向 Serverless 進行開發(fā)時,免不了會有很多疑問:
怎樣本地開發(fā)一個 Serverless 項目?
怎樣對 Serverless 函數(shù)進行本地調(diào)試?
開發(fā)過程中打印的日志是否可以方便的檢索并用于 debug?
如何保證本地環(huán)境和云端環(huán)境的一致?
發(fā)布時怎樣將多個函數(shù)一次性發(fā)布到云環(huán)境中?
面臨開發(fā)過程中的種種挑戰(zhàn),開發(fā)者工具將從開發(fā)者的視角出發(fā),使 Serverless 的項目開發(fā)更貼近用戶習慣。
下面是一張項目開發(fā)的生命周期流程圖,可以看到,在項目的開發(fā)過程中,至少要經(jīng)歷需求、編碼、構(gòu)建、測試、發(fā)布、部署和運維等幾個階段。
在代碼的編碼和構(gòu)建階段通過持續(xù)集成完成代碼的自動構(gòu)建,成為持續(xù)集成 CI(Continuous Integration);在代碼的發(fā)布和部署階段,通過配置灰度策略,告警和回滾計劃等,從而可以完成代碼的持續(xù)交付 CD(Continuous Delivery)。
此外,在開發(fā)者的開發(fā)過程中,也會遇到編碼、調(diào)試和單元測試,集成測試等場景,這些功能的支持也是面向 Serverless 架構(gòu)進行開發(fā)中必不可少的一環(huán)。對開發(fā)者工具的建設,則會重點解決在整個生命周期中的痛點。
在 Serverless 技術(shù)趨勢大熱的今天,已經(jīng)涌現(xiàn)出很多面向開發(fā)者的解決方案和工具,例如開源的 Serverless Framework,Zappa 和 ClaudiaJS 等工具。
開發(fā)者工具大部分都通過調(diào)用云廠商中 Serverless 產(chǎn)品的 API/SDK,封裝底層能力,并提供給客戶更加直觀便捷的使用方式。目前比較常見的開發(fā)工具中,主要分為 CLI 命令行工具以及 IDE 插件這兩種形態(tài)。雖然展現(xiàn)方式不同,但本質(zhì)上都是降低了本地開發(fā) Serverless 項目的門檻,并在云平臺提供的基礎能力上,封裝了更多組織和編排的方式。
本文將以騰訊云的云函數(shù)為例,介紹較為典型的開發(fā)工具 —— 騰訊云 Serverless 本地開發(fā)工具及 VS Code 插件。
騰訊云 Serverless 本地開發(fā)工具(SCF CLI)以開源項目的形式維護,目的在于讓用戶方便的實現(xiàn)函數(shù)打包、部署、本地調(diào)試,也可以方便的生成云函數(shù)的項目并基于 demo 項目進一步的開發(fā)。SCF CLI 通過一個函數(shù)模板配置文件,完成函數(shù)及相關(guān)周邊資源的描述,并基于配置文件實現(xiàn)本地代碼及配置部署到云端的過程。
下面我們以一個 Serverless 項目為例,展示 Serverless 開發(fā)工具的使用流程:
首先,安裝并配置了 SCF CLI 后,可以通過 --help 命令查看所支持的命令,之后通過 scf init 命令快速生成一個函數(shù) demo。在創(chuàng)建完畢后,可以看到生成了 index.js 文件和template.yaml 文件。
其中,index.js 是函數(shù)的入口文件,tempate.yaml 則是通過特定的格式記錄了函數(shù)的配置信息,如內(nèi)存大小,超時時間等信息。tempate.yaml 也是后續(xù)對函數(shù)進行編排和組織的關(guān)鍵。除了簡單的 init 命令之外,SCF CLI 也支持從 git 拉取代碼和一些已有的函數(shù)模板,便于客戶基于特定的場景快速開發(fā)。
在開發(fā)過程中,開發(fā)者會選取自己熟悉的 IDE 代碼編輯器進行代碼編寫。為了便于更快速直觀的進行本地開發(fā)和調(diào)試,通過騰訊云 VS Code 插件支持了一鍵調(diào)試的能力。
首先,可以打開剛創(chuàng)建函數(shù)的文件目錄,在插件中會自動識別這個函數(shù)。之后可以通過 F9 進行斷點,F(xiàn)5 啟動調(diào)試能力。函數(shù)調(diào)試過程中的輸出會打印在 terminal 中,并且支持單步調(diào)試,查看變量和堆棧等信息。
完成了開發(fā)和測試后,也可以分別通過 VS Code 插件或 CLI 進行代碼的發(fā)布。目前分別支持了zip 打包發(fā)布,通過 COS(對象存儲)上傳并發(fā)布,以及通過 git 倉庫發(fā)布,每次只提交增量修改的文件。在發(fā)布完畢后,還可以通過插件中的云端調(diào)試,來查看在云端的運行狀況和返回日志。
在 VS Code 插件及 CLI 中,可以很方便的將單函數(shù)部署在云端,那么如果希望快速發(fā)布多個函數(shù)時,應該怎樣操作呢?
目前也可以直接通過 SCF CLI 的 deploy 命令來實現(xiàn)。只需要通過一個 template.yaml 來維護多個函數(shù)的信息即可。
除了發(fā)布之外,還可以通過 template.yaml 文件中的 Global 字段來定義一些函數(shù)的通用配置,從而解決開發(fā)過程中,希望多個函數(shù)共用相同配置的痛點(例如共用相同的環(huán)境變量,超時時間和內(nèi)存等,不需要重復配置)
例如,在我的工作空間下,有兩個函數(shù)「hellotinatest234」以及「testscflinux」需批量部署上傳,并且兩個函數(shù)使用公共配置。則可以在 template.yaml 中分別定義兩個函數(shù)的屬性,并且定義 Global 字段指定公共配置。部署過程和 yaml 的樣式如下:
除了開發(fā)流程之外,在生產(chǎn)環(huán)境異常時,也可以通過 CLI 的 logs --tail 等命令,快速靈活地進行日志查詢等,并且可以配合 grep awk 等工具使用。當發(fā)布新版本時,采用 tail 模式可以實時打印云端日志,方便開發(fā)者快速查看問題。
最后是云函數(shù)的 DevOps 能力。目前已經(jīng)支持了和 Jekins,Coding 和藍鯨平臺等對接。并且還在持續(xù)對 Coding 平臺做更深度的整合,提供開箱即可用的 DevOps 能力。
隨著 Serverless 生態(tài)的逐步完善,工具可以覆蓋的場景會越來越多。例如,可以在本地模擬 API 網(wǎng)關(guān)的請求,或是通過集成常用的測試框架,對函數(shù)進行單元測試和整體性測試等。開發(fā)者也有更廣闊的空間可以去參與其中,構(gòu)建一個面向 Serverless 的開發(fā)架構(gòu)。
后續(xù)開發(fā)者工具會更加著重于對函數(shù)及函數(shù)周邊資源的組織方式(網(wǎng)關(guān),DB 等),從項目/應用的維度出發(fā),讓開發(fā)者可以快速通過工具搭建一個常用的使用場景(如 WEB 網(wǎng)站,文件上傳工具等),從而更好地了解 Serverless 項目的組織方式。
此外,在持續(xù)集成和持續(xù)交付的對接中,開發(fā)者工具也將支持更便捷,通用的配置,便于規(guī)范開發(fā)流程,承載大型項目和核心業(yè)務。
我們誠邀您來體驗最便捷的 Serverless 開發(fā)和部署方式。在試用期內(nèi),相關(guān)聯(lián)的產(chǎn)品及服務均提供免費資源和專業(yè)的技術(shù)支持,幫助您的業(yè)務快速、便捷地實現(xiàn) Serverless!
詳情可查閱:Serverless Framework 試用計劃
3 秒你能做什么?喝一口水,看一封郵件,還是 —— 部署一個完整的 Serverless 應用?
復制鏈接至 PC 瀏覽器訪問:https://serverless.cloud.tencent.com/deploy/express
3 秒極速部署,立即體驗史上最快的 Serverless HTTP 實戰(zhàn)開發(fā)!
傳送門:
GitHub: github.com/serverless
官網(wǎng):serverless.com
看完了這篇文章,相信你對“Serverless的開發(fā)者工具怎么用”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。