Function Compute supports multiple languages through the use of runtimes. When you create a function, you must select a runtime environment to upload and run your code. When you update a function, you can change or upgrade the runtime environment by updating the configurations of the function. This topic describes the runtimes supported by Function Compute and the runtime deprecation policies.
Background
Function Compute invokes a function in an execution environment. The execution environment provides a secure and isolated runtime environment that manages the resources required to run your function. If an execution environment from a previous invocation is available, Function Compute reuses the execution environment. Otherwise, Function Compute creates a new execution environment.
Each runtime of Function Compute is based on a specific Linux distribution. Currently, Debian 9 (Stretch) and Debian 10 (Buster) are supported. A runtime can use a single version of a language, multiple versions of a language, or multiple languages. When a version of a language reaches the end of life, the runtimes for the version and language framework are deprecated.
Supported runtimes
Node.js
Version | Operating system | Architecture |
---|
Node.js 16.x (public preview) | Linux | x86_64 |
Node.js 14.x | Linux | x86_64 |
Node.js 12.x | Linux | x86_64 |
Node.js 10.x | Linux | x86_64 |
Node.js 8.x | Linux | x86_64 |
Python
Version | Identifier | Operating System | Architecture |
---|
Python 3.10 (in public review) | python3.10 | Debian 10 | x86_64 |
Python 3.9 | python3.9 | Debian 9 | x86_64 |
Python 3.6 | python3 | Debian 9 | x86_64 |
PHP
PHP version | Operating system | Architecture |
---|
PHP 7.2 | Linux | x86_64 |
Java
Version | OS | Architecture |
---|
Java 11 | Linux | x86_64 |
Java 8 | Linux | x86_64 |
. NET
.NET version | Operating system |
---|
.NET Core 2.1 | Debian 9 |
.NET Core 3.1 | Debian 9 |
Go
Name | OS | Architecture |
---|
Go 1.x | Linux | x86_64 |
Custom runtime
Parameter | Identifier | Operating System | Architecture |
---|
Custom runtime (Debian 10) (in public review) | custom.debian10 | Debian 10 | x86_64 |
Custom Runtime | custom | Debian 9 | x86_64 |
Runtime deprecation policy
With the iteration of runtime versions, Function Compute stops maintaining specific runtimes and does not provide technical support and security updates for these runtimes. The deprecation of a runtime is divided into two phases.
- Phase 1
You can no longer create functions that use the runtime, but you can still execute and update existing functions that use the runtime.
- Phase 2
You can no longer create or update functions that use the runtime, but you can still execute the existing functions that use the runtime.
Important Function Compute does not block invocations of a function that uses a deprecated runtime. Function can still be invoked after the runtime reaches deprecation. However, we recommend that you migrate functions to the latest supported runtime so that you can continue to receive security patches and remain eligible for technical support.
The following table describes the deprecation plans for runtimes in Function Compute. For runtimes that are not listed in the table, no deprecation plans are made. Function Compute notifies you by email or internal messages if you have functions that use a runtime that is scheduled for deprecation in the next 60 days.
Runtime | Identifier | Phase 1 | Phase 2 |
---|
Node.js 10 | nodejs10 | September 1, 2024 | - |
Node.js 8 | nodejs8 | September 1, 2023 | - |
.NET Core 2.1 | dotnetcore2.1 | June 1, 2023 | - |
Python 2.7 | python2.7 | June 1, 2023 | - |
Node.js 6 | nodejs6 | June 1, 2023 | July 1, 2023 |
Node.js 4.4 | nodejs4.4 | June 1, 2023 | July 1, 2023 |