All Products
Search
Document Center

Function Compute:Use WebIDE

Last Updated:Sep 01, 2025

Web Integrated Development Environment (WebIDE) is an online IDE provided by Function Compute that offers a cloud development experience similar to Visual Studio Code (VS Code). You can write, debug, and deploy code online without having to set up a complex development environment on a local machine. This topic describes the features and user interface of WebIDE and explains how to configure it in the Function Compute console.

Limits

  • WebIDE supports only Python, Node.js, PHP, and custom runtimes. Online editing is not supported for the Java, Go, or C# runtimes. For these runtimes, you can only upload compiled and packaged ZIP files or binary files.

  • WebIDE provides each user with 5 GB of storage space. Write operations fail if you exceed this limit. Clean up your storage space regularly.

  • When you open WebIDE for a function, an instance is automatically started. This instance is equivalent to a container instance with 1 vCPU and 1.5 GB of memory.

  • The WebIDE instance environment is the same as your function's runtime environment. However, this instance cannot load your custom layers or mounted NAS or OSS resources. It also cannot access the VPC environment configured for your function. If you need these features, you can deploy your code and then invoke the function, or use the dedicated WebIDE.

  • The dedicated WebIDE is available only in the China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), China (Hong Kong), Singapore, Japan (Tokyo), Germany (Frankfurt), and US (Virginia) regions. To use the dedicated WebIDE in other regions, you can join the DingTalk group (ID: 64970014484) to apply.

WebIDE interface overview

The following figure shows the WebIDE interface in full-screen mode. It is divided into four areas: ① Resource manager, ② File editor, ③ Function operations, and ④ Command-line terminal.web-ide

  • ① Resource manager: View the code structure, including code files and dependency files.

  • ② File editor: Edit your function code. After you finish editing, you can click the image.png icon in the upper-right corner to debug your code. To synchronize the online code with the terminal environment, click Deploy Code in the ③ Function operations area.

  • ③ Function operations: Deploy and test your function code. After you click Exit Full Screen, the function operations area moves to the upper-left corner of the WebIDE interface.

  • ④ Command-line terminal: In the WebIDE toolbar, you can select Terminal > New Terminal to open a command-line terminal. In the terminal, you can debug your code or install third-party dependencies.

Configure WebIDE in the console

Prerequisites

Create a function. For more information, see Create a function.

Procedure

  1. Log on to the Function Compute console. In the left-side navigation pane, click Functions.

  2. In the top navigation bar, select a region. On the Functions page, click the function that you want to manage.

  3. (Optional) On the Code tab of the function details page, click Configure WebIDE in the upper-right corner. In the Configure WebIDE panel, select a WebIDE type.

    You can select the Serverless or Dedicated WebIDE.

    • Serverless

      The default version. It is free to use and does not support accessing resources in a VPC or mounting NAS or OSS resources.

    • Dedicated

      If you need the instance to load your custom layers, mount NAS or OSS resources, or access the VPC environment configured for the service, select Dedicated WebIDE and configure the following items.

      • Instance Type

      • Execution Timeout

      If you select the dedicated WebIDE, Function Compute reuses an existing VPC, vSwitch, and General-purpose NAS file system or automatically creates new ones based on the VPCs in the region where your function resides. For more information about the billing of automatically created resources, see Billing of General-purpose NAS file systems.

  4. In the WebIDE interface, write and test your function code, and install third-party dependencies as needed.

    For more information about the WebIDE interface, see WebIDE interface overview.

Important

If you select the dedicated WebIDE, ensure that your function can be executed correctly. Otherwise, WebIDE may fail to open.

FAQ

What do I do if WebIDE fails to load?

You can try refreshing the function details page or quickly resetting the WebIDE environment. For more information about how to reset the WebIDE environment, see How can I quickly reset the environment variables, runtime, and layers for a function's WebIDE.

What is a dedicated WebIDE?

A dedicated WebIDE is essentially a Function Compute function that is deployed in your account and whose name starts with _webide-server-.

When you use a dedicated WebIDE, the instance can load your custom layers and mounted NAS or OSS resources. It also supports access to the VPC configured for your service. This ensures that the terminal and online runtime environments are identical, which simplifies development and debugging. You can also select an instance type. For example, you can increase the CPU and memory specifications to improve WebIDE performance.

When you select a dedicated WebIDE, the underlying function runs in your account. Therefore, you are charged for the following items.

Why does my function fail when I click Test Function even though it runs successfully in the terminal?

WebIDE helps developers quickly test code, build projects, and install dependencies. However, the WebIDE environment is not the true Function Compute execution environment. In WebIDE, you cannot directly test custom layers, mounted NAS or OSS resources, or access resources through a VPC.

To avoid this issue, you can use a dedicated WebIDE. You can also click Deploy Code after you finish editing the code, and then click Test Function to run a test.

How to quickly reset the environment variables, runtime, and layers for a function's WebIDE

When you refresh the function details page or the WebIDE interface, the latest environment variables, layers, and runtime of the online function are applied to the WebIDE instance. You can run env in the terminal to view the latest function environment variables and other information.

How long is Serverless WebIDE workspace data retained?

By default, the workspace is saved for 48 hours. If you do not open the function in WebIDE for 48 consecutive hours, the workspace content is deleted.

In addition, if the online code is modified in the console or using an SDK tool, the function's code checksum changes. When you refresh or reopen WebIDE, the workspace content is automatically updated to match the latest online code.

Can I debug code in WebIDE?

Yes. You can directly use the built-in VS Code debugging plugins for each runtime in WebIDE. For other less common languages in a custom runtime, you can install a suitable VS Code plugin.

For example, if your function runs in the Python 3.9 runtime, you must add some auxiliary code to run the handler function. The code is shown in the red box in the following figure.vscode-auxiliary-code

When I modify function code, the git plugin shows code differences. Is this because WebIDE hosts the function code?

No. When you open WebIDE for the first time for a function code package, it automatically runs git init to show the differences between the current code and the online code. Each time you click Deploy Function, a commit is automatically generated. This synchronizes the code in the terminal with the online code. In the figure, save function with codechecksum xxxx indicates that a function deployment was performed. This feature improves the user experience.

Important

We recommend that your function code package does not contain a .git directory. To avoid issues with WebIDE, delete the .git folder when you package your code.

git-init-commit

Why is the code different when two RAM users from the same Alibaba Cloud account open the same function?

Function Compute WebIDE supports workspace isolation for Resource Access Management (RAM) users under the same Alibaba Cloud account. For example, RAM user A opens WebIDE A, and RAM user B opens WebIDE B. RAM user B cannot see the code changes that RAM user A makes in their workspace. In this case, the code displayed for RAM user A and RAM user B is different.

Both RAM user A and RAM user B can see the differences between the code in their own workspace and the online function code. For more information, see When I modify function code, the git plugin shows code differences. Is this because WebIDE hosts the function code?.

What do I do if the WebIDE terminal is slow to open or fails to open?

You can perform the following steps to troubleshoot the issue:

  1. Check whether the network settings are correct. For example, check whether your local client has a proxy configured that restricts access, or whether the WebSocket protocol is disabled. WebIDE uses WebSocket for real-time communication and interaction. If WebSocket is disabled, WebIDE will not run correctly.

  2. Check whether your local client is trying to open a function in a region outside China. If your local client has poor cross-border network connectivity, trying to open a function in a region outside China may cause slow connections or connection failures.

  3. Check whether your code package is too large. If the code package is too large, it may take a long time to upload or deploy the code. You can try to optimize the code package and then retry.

If the issue persists after you perform the preceding steps, contact us.

References

  • You can also use the WebIDE terminal to package third-party dependencies for your function. For more information, see Use WebIDE to package third-party dependencies for a function.

  • If your function code or the third-party dependencies to be installed are large, you can extract the function dependencies into a layer or use a Function Compute public layer to reduce the code package size. For more information, see Create a custom layer.

  • You can also use the local debugging feature of Serverless Devs to test functions locally. For more information, see Local debugging.