Aliyun Serverless VSCode Extension是一款VSCode圖形化開發調試Function Compute以及操作Function Compute資源的外掛程式。本文介紹了如何通過該外掛程式建立函數以及該外掛程式的常見功能。
注意事項
本文介紹的VSCode外掛程式基於Funcraft工具,而Funcraft工具後期不再維護。如果您的Function Compute資源是使用Funcraft管理的,建議您將資源遷移至Serverless Devs管理。
關於如何將Function Compute的相關資源從Funcraft遷移到Serverless Devs進行管理的詳細操作,請參見從Funcraft遷移到Serverless Devs。
關於Serverless Devs的詳細資料,請參見什麼是Serverless Devs。
由此帶來的不便,敬請諒解!
前提條件
如果您期望使用Aliyun Serverless VSCode Extension的所有功能,那麼您需要確保系統中有以下組件:
VSCode:可以在Visual Studio Code官網中下載安裝。
Docker:可以在aliyun/fun中根據教程安裝配置Docker。
背景資訊
Aliyun Serverless VSCode Extension是Function Compute提供的VSCode外掛程式,該外掛程式結合了Function Compute命令列工具Fun和Function ComputeSDK的功能,是基於VSCode的開發、調試、部署工具。通過該外掛程式,您可以完成以下工作。
快速地在本地初始化專案、建立函數。
運行、調試本地函數,以及部署服務函數至雲端。
拉取雲端的服務函數列表、查看服務函數配置資訊、調用雲端函數。
獲得模版檔案的文法提示:自動補全、Schema校正、懸浮提示。
安裝外掛程式
開啟VSCode並進入外掛程式市場。
在外掛程式市場中搜尋Aliyun Serverless,查看詳情並安裝。
重啟VSCode,左側導覽列中會展示已安裝的Aliyun Serverless VSCode Extension外掛程式表徵圖。
快速入門
綁定阿里雲帳號。
在左側導覽列,單擊Aliyun Serverless VSCode Extension的
表徵圖,然後單擊Bind New Account。依次輸入阿里雲Account ID、阿里雲AccessKey ID、阿里雲AccessKey Secret、自訂的帳號別名(即帳號本地名稱)。
您可以在帳號管理中擷取帳號的Account ID,使用者資訊管理中擷取AccessKey ID和AccessKey Secret。
說明VSCode支援RAM使用者登入。您在使用RAM使用者登入VSCode時,阿里雲Account ID需要使用您的主帳號的資訊,阿里雲AccessKey ID及阿里雲AccessKey Secret需要使用您的RAM使用者資訊。
綁定完成後,可以看到所綁定的阿里雲帳號的雲端服務與函數列表。
您可以在REMOTE RESOURCES地區,單擊右上方的更多資訊表徵圖,在下拉式功能表中,選擇Switch Region來查看不同地區的服務與函數。
建立函數。
通過VSCode,開啟一個空的檔案夾。單擊LOCAL RESOURCES中的加號表徵圖建立函數,可以在本地初始化一個Function Compute專案。
按照導航依次輸入或選擇服務名稱、函數名稱、函數運行環境、函數類型。填寫完畢後,外掛程式會自動建立函數並在LOCAL RESOURCES地區內展示建立的本地服務與函數。
您也可以直接單擊LOCAL RESOURCES中服務名右側的加號表徵圖,為該服務建立函數。按照導航依次輸入或選擇函數名稱、函數運行時、函數類型即可。
部署服務以及函數。
單擊LOCAL RESOURCES地區中的部署表徵圖,可以將本地的服務與函數部署到雲端。
部署完成後,單擊REMOTE RESOURCES地區中的重新整理表徵圖,可以查看部署到雲端的服務與函數。TERMINAL頁簽中會顯示部署進度及成功資訊。
其餘功能介紹
本地調用函數
在LOCAL RESOURCES地區,單擊函數名稱右側的執行表徵圖或handler檔案中的Local Run,即完成在本地調用該函數。
函數的日誌和結果會輸出在TERMINAL頁簽內。
FC Invoke Start RequestId: xxx load code for handler:index.handler 2019-07-18T12:25:50.146Z xxx [verbose] [String: '{"key": "value"}'] FC Invoke End RequestId: xxx hello world RequestId: xxx Billed Duration: 115 ms Memory Size: 1998 MB Max Memory Used: 58 MB外掛程式會為您在函數入口檔案同目錄下建立event.dat檔案,您可以通過修改該檔案設定每次調用函數時觸發的事件資訊。預設內容為JSON格式,例如
{"key": "value"}。本地調試函數
重要若您想要調試Python 2.7或Python 3的函數,需要事先在外掛程式安裝Python外掛程式。
若您想調試PHP 7.2的函數,需要事先在外掛程式安裝PHP Debug外掛程式。
在LOCAL RESOURCES地區中,單擊函數名稱右側的調試表徵圖或handler檔案中的Local Debug,即完成在本地調試該函數。
在代碼檔案中插入斷點,啟動調試後即可看到調試資訊。
外掛程式會為您在函數入口檔案同目錄下建立event.dat檔案,您可以通過修改該檔案設定每次調試函數時觸發的事件資訊。
執行雲端函數
單擊REMOTE RESOURCES地區中函數右側的執行表徵圖,可以執行雲端函數。
函數的日誌以及結果會輸出在TERMINAL頁簽內。
FC Invoke Start RequestId: xxx load code for handler:index.handler 2019-07-18T12:25:50.146Z xxx [verbose] [String: '{"key": "value"}'] FC Invoke End RequestId: xxx hello world RequestId: xxx Billed Duration: 115 ms Memory Size: 1998 MB Max Memory Used: 58 MB外掛程式會為您在專案根目錄下建立event.dat檔案,您可以通過修改該檔案設定每次調用雲端函數時觸發的事件資訊。
跳轉到模版檔案定義
Funcraft通過YAML格式的模板檔案來描述Serverless應用。通過Aliyun Serverless VSCode Extension建立函數時,會使用預設值自動填滿模版檔案。若您想修改本地服務或函數的配置,可以通過單擊LOCAL RESOURCES地區f中的服務或函數名,跳轉到模版檔案中的相關描述,所選擇資源在模板檔案中的相關描述塊會高亮並逐漸褪去。
模版檔案提示
自動補全
支援模版檔案template.yml內所有資源配置屬性的自動補全。自動補全會依據縮排層級給出精準的提示選項。
Schema校正
支援模版檔案template.yml內所有資源配置資訊的校正。在template.yml中會檢測資源的配置資訊是否符合規格說明。
懸浮提示
提供模版檔案template.yml內所有資源配置的上下文協助。在template.yml中,將滑鼠懸浮在相關資源的鍵名上,會出現關於該鍵下可配置欄位的懸浮資訊展示(欄位名、欄位類型)。