Function Compute supports multiple languages through runtimes. Select a runtime when you create a function. You can change or upgrade it at any time by updating the function configuration.
How it works
Each function runs inside an execution environment—a secure, isolated sandbox that manages the resources your function needs. When a function is invoked, Function Compute reuses an available execution environment from a previous invocation. If none is available, it creates a new one.
All runtimes are based on a specific Linux distribution. Depending on the runtime, Function Compute supports Debian 9 (Stretch), Debian 10 (Buster), or Debian 11. When a language version reaches end of life, the corresponding runtime is deprecated.
Supported runtimes
Node.js
| Version | Identifier | OS | Architecture |
|---|---|---|---|
| Node.js 20.x | nodejs20 | Linux (Debian 10) | x86_64 |
| Node.js 18.x | nodejs18 | Linux (Debian 10) | x86_64 |
| Node.js 16.x | nodejs16 | Linux (Debian 9) | x86_64 |
| Node.js 14.x | nodejs14 | Linux (Debian 9) | x86_64 |
| Node.js 12.x | nodejs12 | Linux (Debian 9) | x86_64 |
Python
| Version | Identifier | OS | Architecture |
|---|---|---|---|
| Python 3.12 (public preview) | python3.12 | Debian 11 | x86_64 |
| Python 3.10 | python3.10 | Debian 10 | x86_64 |
| Python 3.9 | python3.9 | Debian 9 | x86_64 |
| Python 3.6 | python3 | Debian 9 | x86_64 |
PHP
| Version | OS | Architecture |
|---|---|---|
| PHP 7.2 | Linux | x86_64 |
Java
| Version | OS | Architecture |
|---|---|---|
| Java 11 | Linux | x86_64 |
| Java 8 | Linux | x86_64 |
.NET
| Version | OS |
|---|---|
| .NET Core 3.1 | Debian 9 |
Go
| Version | OS | Architecture |
|---|---|---|
| Go 1.x | Linux | x86_64 |
Custom runtimes
Custom runtimes let you run any language or framework not covered by the built-in runtimes.
| Runtime | Identifier | OS | Architecture |
|---|---|---|---|
| Custom Runtime (Debian 11) (in public preview) | custom.debian11 | Debian 11 | x86_64 |
| Custom Runtime (Debian 10) | custom.debian10 | Debian 10 | x86_64 |
| Custom Runtime (Debian 9) | custom | Debian 9 | x86_64 |
Runtime deprecation policy
Function Compute deprecates runtimes in two phases when a language version reaches end of life. Security patches and technical support are no longer provided after deprecation begins.
| Phase | What happens |
|---|---|
| Phase 1 | New functions cannot be created using the runtime. Existing functions can still be executed and updated. |
| Phase 2 | Existing functions cannot be updated using the runtime. Existing functions can still be executed. |
Function Compute does not block invocations of functions using a deprecated runtime. To continue receiving security updates and technical support, migrate your functions to a supported runtime.
Function Compute notifies you by email or internal messages 60 days before a runtime is deprecated. The table below lists current deprecation plans. Runtimes not listed have no scheduled deprecation date.
| Runtime | Identifier | Phase 1 | Phase 2 |
|---|---|---|---|
| Node.js 12 | nodejs12 | None | None |
| Node.js 10 | nodejs10 | October 15, 2024 | December 15, 2024 |
| Node.js 8 | nodejs8 | October 15, 2024 | December 15, 2024 |
| .NET Core 2.1 | dotnetcore2.1 | June 1, 2023 | September 25, 2024 |
| Python 2.7 | python2.7 | June 1, 2023 | September 25, 2024 |
| Node.js 6 | nodejs6 | June 1, 2023 | September 25, 2024 |
| Node.js 4.4 | nodejs4.4 | June 1, 2023 | September 25, 2024 |
Related topics
Custom runtimes support extensions to optimize and adjust function behavior. See Use Loggie in custom runtimes and ARMS extensions for custom runtimes.
For an overview of built-in and custom runtime capabilities, see Code development overview.