全部產品
Search
文件中心

Function Compute:什麼是WebIDE

更新時間:Jul 06, 2024

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介面,劃分為①資源管理員、②檔案編輯區、③函數操作區和④命令列終端四個地區。web-ide

  • ①資源管理員:查看代碼結構,包括代碼檔案和依賴檔案等。

  • ②檔案編輯區:完成函數代碼的編輯。代碼編輯完成後,您可以單擊右上方的image.png按鈕開始調試您的代碼。如果需要完全實現線上和終端環境一致,需要在③函數操作區單擊部署代碼

  • ③函數操作區:完成函數代碼的部署和測試。單擊退出全屏後,函數操作區位於WebIDE介面的左上方。

  • ④命令列終端:在WebIDE介面上方工具列,選擇Terminal > New Terminal開啟命令列終端。在命令列終端,您可以調試您的代碼或者安裝第三方依賴。

通過控制台配置WebIDE

前提條件

已建立服務和函數。具體操作,請參見建立服務建立函數

操作步驟

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數
  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
  3. 函數管理頁面,單擊目標函數名稱,然後在函數詳情頁面,單擊函數代碼頁簽。
  4. 可選:在函數詳情頁面的函數代碼頁簽,單擊右上方的配置 WebIDE,然後在配置 WebIDE面板,選擇WebIDE的類型。

    您可以選擇Serverless 版WebIDE或者專有版WebIDE。

    • Serverless 版

      您可以同時勾選關閉專有版 WebIDE,確保每次開啟WebIDE時,都預設選擇Serverless 版WebIDE。

    • 專有版

      如果需要執行個體能夠載入您的自訂層和掛載的NAS或OSS,以及訪問服務配置的VPC環境,可以選擇專有版WebIDE,同時設定以下配置項。

      • 執行個體規格方案

      • 執行逾時時間

      如果選擇專有版WebIDE,Function Compute將根據您函數所屬地區的VPC情況,複用或者自動建立一個VPC、一個交換器和一個通用型NAS。關於自動建立資源的費用詳情,請參見通用型NAS計費

  5. 在WebIDE介面,按需執行函數代碼編寫、測試和安裝第三方依賴等操作。

    關於WebIDE介面的分區介紹,請參見WebIDE介面概覽

重要

如果選擇專有版WebIDE,請確保您的函數能正常執行,否則可能無法正常開啟WebIDE。

常見問題

WebIDE載入異常,如何處理?

嘗試重新整理函數詳情頁面或者快速重設WebIDE環境。關於重設WebIDE環境的具體操作,請參見如何快速重設函數的WebIDE環境和工作空間內容?

什麼是專有版WebIDE?

專有版WebIDE的本質是部署在您的帳號下的一個FC函數。函數所屬的服務名稱以_webide-server-開頭。

使用專有版WebIDE,執行個體可以載入您的自訂層和掛載的NAS或OSS,且支援訪問您的服務配置的VPC,實現真正的終端與線上Runtime環境一致,便於更好的開發和調試。您還可以選配執行個體的規格方案,例如,提高CPU和記憶體規格,提升WebIDE效能。

選擇專有版WebIDE後,其本質的函數運行在您自己的帳號下,因此,需額外承擔以下費用成本。

  • Function Compute的函數調用和資源使用等費用。更多資訊,請參見計費概述

  • 掛載NAS檔案儲存體系統的相關費用。更多資訊,請參見通用型NAS計費

為什麼函數在終端中執行成功,單擊測試函數執行失敗?

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函數運行。如下圖紅框所示。vscode-auxiliary-code

修改函數,git外掛程式會顯示代碼差異,是因為WebIDE對函數代碼進行了託管嗎?

不是。WebIDE開啟時,第一次開啟函數程式碼封裝,會自動初始化一個git init,用於顯示當前代碼和線上代碼的差異。當您單擊一次部署函數後,會自動產生一個commit,即實現終端和線上的代碼完全一致(下圖中save function with codechecksum xxxx表示執行了一次函數部署)。該功能用於提升使用者使用體驗。git-init-commit

同一個阿里雲帳號的兩個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終端開啟很慢或者打不開怎麼辦?

您可以參照以下步驟進行排查:

  1. 檢查網路設定是否正確,例如您的本地用戶端是否設定了代理限制訪問,或者禁用了WebSocket協議。WebIDE使用WebSocket進行即時通訊和互動,禁用WebSocket將導致WebIDE無法正常運行。

  2. 檢查本地用戶端是否開啟的是海外地區的函數,如果本地用戶端網路跨境能力較差,嘗試開啟海外地區的函數會導致串連緩慢或者無法串連。

  3. 檢查您的程式碼封裝是否過大。如果程式碼封裝體積過大,上傳或部署代碼需要較長的時間,您可以嘗試最佳化程式碼封裝後再重試。

如果按照以上步驟排查處理後,問題仍未解決,請聯絡我們

相關文檔

  • 您還可以使用WebIDE終端打包函數的第三方依賴。具體操作,請參見使用WebIDE打包函數第三方依賴

  • 如果您的函數代碼體積較大,或要安裝的第三方依賴包體積較大,可將函數依賴提煉到層或者使用Function Compute官方公用層來縮小代碼體積。具體操作,請參見建立自訂層

  • 您也可以通過Serverless Devs工具的本地調試功能在本地對函數進行測試。更多資訊,請參見本地調試