Serverless實踐系列(十):全新命令行工具幫你快速部署雲函數
- 2019 年 10 月 5 日
- 筆記
SCF CLI 是騰訊云云函數(Serverless Cloud Function,SCF)產品的命令行工具,想必很多小夥伴已經有所了解,或者試用過了。作為一個可以提高開發者效率的工具,騰訊雲 Serverless 團隊一直在對 SCF CLI 進行優化工作,本文將給大家介紹新版 SCF CLI 增加的有趣功能!
介紹
一、Deploy 功能優化
1:部署可以選擇默認 COS
只需要在設置的時候,設置 using-cos 就可以,當然也可以 scf configure set –using-cos y 來直接設置:

選擇之後,可以在接下來的部署中,默認上傳程式碼到你的 cos,提高部署速度:

即使設置了 cos,在某次 Deploy 時,不想使用 cos,也可以選擇不通過 cos 部署,增加 –without-cos:

想自定義 COS 也可以:–cos-bucket:

(由於沒有這個 cos,所以上傳失敗)
在日常使用過程中,可能會存在部署同樣一段程式碼的情況。
比如,我部署了 A 程式碼,又部署了 B 程式碼。之後,我想重新部署 A 程式碼,按照傳統方法是可以再次上傳 A 程式碼,但如果 Package 比較大,就比較難受了。而新版本的 CLI 經過測試,130M 的 Package 首次部署使用 25s,第二次部署同樣的文件,只需要 2s。
附:COS 的相關計費鏈接
- 免費額度:
https://cloud.tencent.com/document/product/436/6240
- 計費概述:
https://cloud.tencent.com/document/product/436/16871
- 計費方法:
https://cloud.tencent.com/document/product/436/36522
- 產品定價
https://cloud.tencent.com/document/product/436/6239
2:部署歷史版本
程式碼部署過程中,如果出現問題,需要恢復歷史版本。新版本的 SCF CLI 支援部署歷史版本,在大家使用了 using-cos 之後,可以通過 deploy 的參數 –history 來部署歷史版本:

選擇一個歷史版本,就可以直接實現文檔回滾:

3:打包功能優化
舊版 SCF CLI 會把用戶目錄下的全部文件打包,新版 SCFCLI 在這方面也做了重點優化,可以直接指定 ZIP,指定某文件,並且打包的時候會默認去除 .git 等隱藏目錄,並且在 deploy 之後,默認刪除之前的打包資訊。
Yaml 文件可以這樣:

二、新增 Delete 功能
舊版 SCF CLI 不支援 Delete 功能,在新版中,大家可以輕鬆自在地使用:

只需要輸入 scf delete –help 就可以看到使用方法和參數描述哦!
三、新增 List 功能
以往,如果想查看雲函數的內容,或者我部署了哪些函數,是需要去控制台挨個區域、挨個 namespace 查看。現在無需繁瑣,通過 List 指令即可實現:

同樣可以通過 SCF 的 –help 來查看所有用法:scf list –help
四、幫助文檔的優化
上面的很多說明,都是讓大家使用 –help 來查看幫助,那麼在新版中,–help 有哪些大的優化呢 —— 全局的幫助文檔優化,在任何指令下都可以 –help 查看幫助:

在指令頁面可以進行例子查看:

每個主要的指令,都會有指令的描述以及使用例子,同時規範了參數描述。
五、API 網關部分
現有 SCF CLI 在使用 API 網關的時候每次都需要新建,如果不想新建,就需要注釋配置文件或者使用 –skip-event,這讓很多用戶頭疼。新版 SCF CLI 在 API 網關部分增加了 ServiceId 欄位:

有了這個欄位,大家使用的時候可以直接選擇綁定已有網關。新建網關之後,系統會進行提示:

把對應的網關 ID 填寫上即可避免下次創建。這樣一個簡單的欄位增加,給小夥伴們帶來了兩個優秀的體驗:
1:可以綁定現有的 API 網關,不需要新建
2:可以保證現有網關形態,不會每次新建
六、輸出資訊優化
有心的小夥伴應該注意到了,本次更新,UI 變化非常大。在我們使用雲函數的時候,不同表達會用不同的顏色顯示:

同時,Deploy 之後,大家不用打開網頁看雲函數資訊,而是通過控制台直接看到:

實驗
Hello world
以 Hello World 為例,通過幫助查看 init 創建指令:
scf init –help

根據例子創建 Python 語言的 hello world:
scf init –runtime python3.6

按照提示:cd hello_world 進行項目編輯

修改程式碼和配置網關:

網關這裡要用,我不想新建網關,而是想要用已經有的一個 API 網關:

填寫好 serviceeId:

然後保存退出,Deploy:

部署之後,輸出函數資訊:

打開 API 網關中 subDomain:

部署成功!
查看函數列表
只需要輸入 scf list

刪除函數
只需要輸入需要刪除的函數相關資訊:
scf delete –name hello_world –region ap-shanghai –namespace default

本文關於命令行工具的介紹和實踐就暫告一段落。
更多功能,等待各位小夥伴自行挖掘哦!
推薦閱讀:
