Function Compute propose des runtimes intégrés pour les langages de programmation courants tels que Node.js, Python, PHP, Java, C# et Go. Vous pouvez ainsi vous concentrer sur le développement de votre logique métier sans configuration supplémentaire. Toutefois, certains scénarios nécessitent l'usage de langages moins répandus ou de versions spécifiques d'un langage pour répondre à vos besoins métier particuliers. Dans ce cas, créez un runtime personnalisé afin de disposer d'un environnement adapté. Par exemple, utilisez des langages comme Rust ou spécifiez une version précise de Node.js, telle que Node.js 16, dans votre runtime personnalisé.
Nous vous recommandons d'utiliser des fonctions web avec un runtime personnalisé. Cette combinaison permet de mettre en place rapidement divers frameworks d'applications web populaires, facilitant ainsi la création et le déploiement d'applications et de services basés sur HTTP. Personnalisez la commande de démarrage et le port d'écoute de votre runtime personnalisé. La concurrence au niveau de l'instance est également prise en charge.
Environnements de conteneur
Le tableau suivant répertorie les environnements de conteneur pris en charge par les runtimes personnalisés.
|
Runtime |
Identifiant |
Système d'exploitation |
Architecture |
|
Custom runtime (Debian 12) (en préversion publique) |
custom.debian12 |
Debian 12 |
x86_64 |
|
Custom runtime (Debian 11) |
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 |
Le Custom runtime (Debian 12) est disponible dans les régions suivantes : Chine (Hangzhou), Chine (Qingdao), Chine (Pékin), Chine (Zhangjiakou), Chine (Hohhot) et Chine (Chengdu).
Fonctions créées après le 1er décembre 2021 à 00:00:00
Permissions utilisateur : exécutez les fonctions en tant qu'utilisateur root.
Permissions des répertoires : écrivez des données dans n'importe quel répertoire.
Emplacement du code dans le conteneur : /code.
Fonctions créées avant le 1er décembre 2021 à 00:00:00
Permissions utilisateur : exécutez les fonctions en tant qu'utilisateur non root.
Permissions des répertoires : écrivez des données uniquement dans le répertoire /tmp.
Emplacement du code dans le conteneur : /code.
Informations sur l'environnement
Dépendances intégrées
Les dépendances intégrées d'un runtime personnalisé sont identiques à celles d'un runtime intégré. Pour plus d'informations, consultez les rubriques suivantes :
Lorsque vous créez une fonction web avec un runtime personnalisé, le système configure automatiquement la couche publique correspondante pour le langage de programmation utilisé. Par exemple, une couche Flask est configurée automatiquement lors de la création d'une fonction web en Python.
Custom runtime (Debian 12)
Le tableau suivant présente le langage de programmation intégré au Custom runtime (Debian 12). Écrivez directement le code de votre fonction dans ce langage sans installer d'interpréteurs tiers ni configurer de couches.
Certains langages de programmation nécessitent la configuration de variables d'environnement. Reportez-vous au tableau ci-dessous pour plus de détails.
|
Langage de programmation |
Répertoire d'installation |
Version |
Variable d'environnement |
|
Python 3.11 |
/usr/bin/python3 |
3.11.2 |
Aucun paramètre supplémentaire requis |
Custom runtime (Debian 11)
Le tableau suivant indique le langage de programmation intégré au Custom runtime (Debian 11). Écrivez le code de votre fonction directement dans ce langage, sans recourir à des interpréteurs tiers ou à des couches supplémentaires.
Certains langages de programmation requièrent la configuration de variables d'environnement. Consultez le tableau suivant pour en savoir plus.
|
Langage de programmation |
Répertoire d'installation |
Version |
Variable d'environnement |
|
Python 3,12 |
/var/fc/lang/python3.12 |
3.12.4 |
PATH=/var/fc/lang/python3.12/bin:$PATH |
Custom runtime (Debian 10)
Le tableau ci-dessous liste les langages de programmation intégrés au Custom runtime (Debian 10). Codez votre fonction directement dans ces langages, sans installer d'interpréteurs externes ni configurer de couches.
La configuration de variables d'environnement est requise pour certains langages. Reportez-vous au tableau suivant pour plus de précisions.
|
Langage de programmation |
Répertoire d'installation |
Version |
Variable d'environnement |
|
Node.js 20 |
/var/fc/lang/nodejs20 |
v20.10.0 |
PATH=/var/fc/lang/nodejs20/bin:$PATH |
|
Node.js 18 |
/var/fc/lang/nodejs18 |
v18.19.0 |
PATH=/var/fc/lang/nodejs18/bin:$PATH |
|
Python 3,10 |
/var/fc/lang/python3.10 |
3.10.9 |
PATH=/var/fc/lang/python3.10/bin:$PATH |
|
Python 2.7 |
Répertoire d'installation par défaut |
2.7.16 |
N/A |
Custom runtime (Debian 9)
Les éléments suivants détaillent les langages de programmation intégrés au Custom runtime (Debian 9). Développez votre fonction directement dans ces langages, sans ajouter d'interpréteurs tiers ou de couches.
Python 3.7.4 (version Python par défaut)
Node.js 10.16.2
OpenJDK 1.8.0
Ruby 2.7
Nginx 1.10.3
-
PHP 7.4.12
Utiliser un langage de programmation non intégré
Nous vous recommandons d'utiliser une couche publique pour écrire le code de votre fonction dans un langage non intégré. Pour plus d'informations, consultez Ajouter une couche publique dans la console.
Pour créer un runtime personnalisé avec un langage de programmation non intégré, incluez l'interpréteur ou le runtime de ce langage dans votre package de code, puis déployez ce package sur Function Compute. Par exemple, pour créer un runtime Node.js 16, téléchargez l'interpréteur requis, ajoutez-le à votre code, puis déployez l'ensemble sur Function Compute. Procédez comme suit :
-
Téléchargez
Node.jsen version Linux 64 bits dans le répertoire du package de code.wget http://mirrors.nju.edu.cn/nodejs/v16.14.2/node-v16.14.2-linux-x64.tar.gz -O node-v16.14.2-linux-x64.tar.gz && tar -zxvf node-v16.14.2-linux-x64.tar.gz && rm -rf node-v16.14.2-linux-x64.tar.gz -
Configurez la commande de démarrage de
Node.jsdans le runtime personnalisé.customRuntimeConfig: command: - /code/node-v16.14.2-linux-x64/bin/node args: - 'server.js' # You can also configure the following environment variable for your function: PATH=/code/node-v16.14.2-linux-x64/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin. # After the configuration is complete, you can use Node.js to start the HTTP server.
Installer des dépendances
Pour installer les dépendances de chaque langage de programmation dans un runtime personnalisé, reportez-vous aux rubriques suivantes :
Vous pouvez également utiliser les couches de Function Compute pour installer des dépendances. Nous vous conseillons d'utiliser une couche publique ou de construire une couche de dépendances en ligne. Pour plus de détails, consultez les rubriques suivantes :