WebIDE是Function Compute提供的線上開發IDE,提供接近原生VSCode的雲端開發體驗。開發人員能夠直接線上進行代碼編寫、調試和部署,而不需要在本地安裝複雜的開發環境。本文介紹WebIDE的功能、介面概覽以及通過Function Compute控制台配置WebIDE等。
功能介紹
WebIDE支援以下功能。
完整的代碼開發、部署和調試功能。
WebIDE的終端環境和線上Function Compute的Runtime執行環境一致。
針對不同的Runtime,預置pip、npm和composer等常用的開發工具和程式設計語言開發環境。您可以直接在終端打包第三方依賴,而無需擔心和線上環境有差異。
內建Serverless Devs工具,並能自動根據您當前登入的帳號完成Serverless Devs配置,無需再執行
s config
命令。配置的別名預設為default
。
使用通義靈碼輔助代碼編寫。
開發人員可以開箱即用使用通義靈碼的智能編碼能力,提高編碼效率。通義靈碼能夠即時進行代碼審查,檢測潛在的邏輯錯誤,且當函數運行異常時,能快速定位問題然後提供修複指導,實現開發效率和代碼品質的雙重提升。
為了獲得更好的WebIDE使用體驗,建議您使用最新版本的Google Chrome瀏覽器。
使用限制
WebIDE目前僅支援Python、Node.js、PHP和Custom Runtime運行時。具體資訊,請參見Function Compute的WebIDE支援的Runtime有哪些?。不支援Java、Go和C#運行時線上編輯,以上語言只支援上傳編譯打包後的ZIP檔案或二進位檔案。
WebIDE為每個使用者提供的儲存空間為5 GB,超出後將無法執行寫入操作,請及時清理。
開啟某個函數的WebIDE後,會自動啟用一個執行個體。此執行個體約等於一個1核 1.5GB的容器執行個體。
WebIDE執行個體的環境與您函數的Runtime環境一致,但是此執行個體無法載入您的自訂層和掛載的NAS或OSS,且無法訪問您的服務配置的VPC環境。如您有此需求,可以完成代碼部署後再調用函數,或者使用專有版WebIDE。
專有版WebIDE目前僅支援在華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華南1(深圳)、中國香港、新加坡、日本(東京)、德國(法蘭克福)和美國(維吉尼亞)地區使用。如果您需要在其他地區使用,請加入DingTalk使用者群(DingTalk群號:64970014484)申請。
WebIDE介面概覽
下圖為全螢幕模式下的WebIDE介面,劃分為①資源管理員、②檔案編輯區、③函數操作區和④命令列終端四個地區。
①資源管理員:查看代碼結構,包括代碼檔案和依賴檔案等。
②檔案編輯區:完成函數代碼的編輯。代碼編輯完成後,您可以單擊右上方的按鈕開始調試您的代碼。如果需要完全實現線上和終端環境一致,需要在③函數操作區單擊部署代碼。
③函數操作區:完成函數代碼的部署和測試。單擊退出全屏後,函數操作區位於WebIDE介面的左上方。
④命令列終端:在WebIDE介面上方工具列,選擇
開啟命令列終端。在命令列終端,您可以調試您的代碼或者安裝第三方依賴。
通過控制台配置WebIDE
前提條件
操作步驟
- 登入Function Compute控制台,在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
- 在函數管理頁面,單擊目標函數名稱,然後在函數詳情頁面,單擊函數代碼頁簽。
可選:在函數詳情頁面的函數代碼頁簽,單擊右上方的配置 WebIDE,然後在配置 WebIDE面板,選擇WebIDE的類型。
您可以選擇Serverless 版WebIDE或者專有版WebIDE。
Serverless 版
您可以同時勾選關閉專有版 WebIDE,確保每次開啟WebIDE時,都預設選擇Serverless 版WebIDE。
專有版
如果需要執行個體能夠載入您的自訂層和掛載的NAS或OSS,以及訪問服務配置的VPC環境,可以選擇專有版WebIDE,同時設定以下配置項。
執行個體規格方案
執行逾時時間
如果選擇專有版WebIDE,Function Compute將根據您函數所屬地區的VPC情況,複用或者自動建立一個VPC、一個交換器和一個通用型NAS。關於自動建立資源的費用詳情,請參見通用型NAS計費。
在WebIDE介面,按需執行函數代碼編寫、測試和安裝第三方依賴等操作。
關於WebIDE介面的分區介紹,請參見WebIDE介面概覽。
如果選擇專有版WebIDE,請確保您的函數能正常執行,否則可能無法正常開啟WebIDE。
常見問題
WebIDE載入異常,如何處理?
嘗試重新整理函數詳情頁面或者快速重設WebIDE環境。關於重設WebIDE環境的具體操作,請參見如何快速重設函數的WebIDE環境和工作空間內容?。
什麼是專有版WebIDE?
專有版WebIDE的本質是部署在您的帳號下的一個FC函數。函數所屬的服務名稱以_webide-server-
開頭。
使用專有版WebIDE,執行個體可以載入您的自訂層和掛載的NAS或OSS,且支援訪問您的服務配置的VPC,實現真正的終端與線上Runtime環境一致,便於更好的開發和調試。您還可以選配執行個體的規格方案,例如,提高CPU和記憶體規格,提升WebIDE效能。
選擇專有版WebIDE後,其本質的函數運行在您自己的帳號下,因此,需額外承擔以下費用成本。
為什麼函數在終端中執行成功,單擊測試函數執行失敗?
WebIDE可以協助開發人員快速進行代碼測試、專案構建和依賴安裝,但是WebIDE的環境並非Function Compute真正的執行環境。在WebIDE中,無法直接測試自訂層和掛載的NAS或OSS,也無法測試通過VPC訪問對應資源。
為了避免出現此問題,您可以選擇使用專有版WebIDE或者編輯完代碼後,單擊部署代碼,然後單擊測試函數進行測試。
如何快速重設函數的WebIDE環境變數、Runtime和層?
當您重新重新整理函數詳情頁面或WebIDE介面時,會將線上函數最新的環境變數、層以及Runtime更新到WebIDE執行個體。您可以在終端執行env
查看最新的函數環境變數等資訊。
Serverless版WebIDE工作空間會儲存多久?
預設工作空間儲存的時間為48小時,即如果您持續48小時未通過WebIDE開啟這個函數,這個工作空間內容會被刪除。
另外,如果線上代碼通過控制台或調用SDK工具等方式被修改,函數的code checksum
發生變更,重新整理或重新開啟WebIDE,會自動重新整理工作區間的內容為線上最新代碼。
Function Compute的WebIDE支援的Runtime有哪些?
WebIDE支援的Runtime如下所示。
Python
支援Python 3.10、Python 3.9、Python 3.6和Python 2.7。
Node.js
支援Node.js 16、Node.js 14、Node.js 12、Node.js 10和Node.js 8。
PHP
支援PHP 7.2。
Custom Runtime
支援Custom Runtime和Custom Runtime(Debian10)。
是否支援在WebIDE進行代碼調試?
支援。您可以直接使用WebIDE內建的各Runtime的VSCode調試外掛程式。如果是Custom Runtime其他小眾語言,可以安裝合適的VSCode外掛程式。
以Python 3.9為例,需要增加一些輔助代碼來完成Handler函數運行。如下圖紅框所示。
修改函數,git外掛程式會顯示代碼差異,是因為WebIDE對函數代碼進行了託管嗎?
不是。WebIDE開啟時,第一次開啟函數程式碼封裝,會自動初始化一個git init
,用於顯示當前代碼和線上代碼的差異。當您單擊一次部署函數後,會自動產生一個commit
,即實現終端和線上的代碼完全一致(下圖中save function with codechecksum xxxx
表示執行了一次函數部署)。該功能用於提升使用者使用體驗。
同一個阿里雲帳號的兩個RAM使用者開啟相同的函數,為什麼顯示的代碼不一樣?
Function Compute的WebIDE支援同一個阿里雲帳號的RAM使用者的工作空間隔離。例如,RAM使用者A開啟的是WebIDE A,RAM使用者B開啟的是WebIDE B,RAM使用者A在自己的工作空間修改代碼等,RAM使用者B無法感知。此時,RAM使用者A和RAM使用者B看到的代碼顯示不同。
RAM使用者A和RAM使用者B均可以看到自己工作空間和線上函數代碼的差異。更多資訊,請參見修改函數,git外掛程式會顯示代碼差異,是因為WebIDE對函數代碼進行了託管嗎?。
WebIDE終端開啟很慢或者打不開怎麼辦?
您可以參照以下步驟進行排查:
檢查網路設定是否正確,例如您的本地用戶端是否設定了代理限制訪問,或者禁用了WebSocket協議。WebIDE使用WebSocket進行即時通訊和互動,禁用WebSocket將導致WebIDE無法正常運行。
檢查本地用戶端是否開啟的是海外地區的函數,如果本地用戶端網路跨境能力較差,嘗試開啟海外地區的函數會導致串連緩慢或者無法串連。
檢查您的程式碼封裝是否過大。如果程式碼封裝體積過大,上傳或部署代碼需要較長的時間,您可以嘗試最佳化程式碼封裝後再重試。
如果按照以上步驟排查處理後,問題仍未解決,請聯絡我們。
相關文檔
您還可以使用WebIDE終端打包函數的第三方依賴。具體操作,請參見使用WebIDE打包函數第三方依賴。
如果您的函數代碼體積較大,或要安裝的第三方依賴包體積較大,可將函數依賴提煉到層或者使用Function Compute官方公用層來縮小代碼體積。具體操作,請參見建立自訂層。
您也可以通過Serverless Devs工具的本地調試功能在本地對函數進行測試。更多資訊,請參見本地調試。