Intégrer toutes les dépendances dans le package de déploiement de chaque fonction génère des archives volumineuses et duplique les efforts entre les fonctions. Function Compute fournit des layers publics officiels pour les runtimes courants et les bibliothèques de dépendances. Ajoutez un layer public pour partager les dépendances entre plusieurs fonctions sans devoir les reconstruire systématiquement.
Layers publics
Les tableaux ci-dessous répertorient les layers publics disponibles par catégorie. Pour consulter la liste complète, reportez-vous à Layers publics. Si vous avez besoin d'un layer absent de cette liste, contactez-nous.
Runtimes personnalisés
Ces layers fournissent des environnements d'exécution pour les runtimes personnalisés tels que Python 3.10 et Node.js 17. Certains incluent également des bibliothèques de dépendances courantes. Par exemple, Python310-Package-Collection regroupe des packages Python fréquemment utilisés.
| Layer public | Runtime compatible | Description | Références |
|---|---|---|---|
| PHP81-Debian10 | Custom.Debian10 | Layer runtime PHP 8.1 Debian 10 | README.md |
| PHP80-Debian10 | Custom.Debian10 | Layer runtime PHP 8.0 Debian 10 | README.md |
| Nginx | Custom.Debian10 | Layer runtime Nginx Debian 10 | README.md |
| Python310 | Custom, Custom.Debian10 | Layer runtime Python 3.10.5 | README.md |
| Python310-Package-Collection | Custom.Debian10 | Ensemble de bibliothèques de dépendances courantes pour le runtime Python 3.10 | README.md |
| Python39 | Custom, Custom.Debian10 | Layer runtime Python 3.9.13 | README.md |
| Python39-Package-Collection | Custom, Custom.Debian10 | Ensemble de bibliothèques de dépendances courantes pour le runtime Python 3.9 | README.md |
| Python38 | Custom, Custom.Debian10 | Layer runtime Python 3.8.13 | README.md |
| Python38-Package-Collection | Custom, Custom.Debian10 | Ensemble de bibliothèques de dépendances courantes pour le runtime Python 3.8.13 | README.md |
| Python36 | Custom | Layer runtime Python 3.6.15 | README.md |
| Python36-Package-Collection | Custom | Ensemble de bibliothèques de dépendances courantes pour le runtime Python 3.6.15 | README.md |
| Dotnet6 | Custom, Custom.Debian10 | Layer runtime ASP.NET 6.0.5 | README.md |
| PHP72 | Custom | Layer runtime PHP 7.2 | README.md |
| Java8 | Custom.Debian10 | Layer runtime Java 8 | README.md |
| Java11 | Custom, Custom.Debian10 | Layer runtime Java 11 | README.md |
| Java17 | Custom, Custom.Debian10 | Layer runtime Java 17 | README.md |
| Java21 | Custom.Debian10 | Layer runtime Java 21 | README.md |
| Nodejs20 | Custom.Debian10 | Layer runtime Node.js 20 | README.md |
| Nodejs18 | Custom.Debian10 | Layer runtime Node.js 18 | README.md |
| Nodejs17 | Custom | Layer runtime Node.js 17 | README.md |
| Nodejs16 | Custom, Custom.Debian10 | Layer runtime Node.js 16 | README.md |
| Nodejs14 | Custom | Layer runtime Node.js 14 | README.md |
| Nodejs12 | Custom | Layer runtime Node.js 12 | README.md |
| Go1 | Custom.Debian10 | Layer runtime Go 1 | README.md |
| Go118 | Custom | Layer runtime Go 1.x | README.md |
Bibliothèques de dépendances courantes
| Layer public | Runtime compatible | Description | Version de la bibliothèque principale | Références |
|---|---|---|---|---|
| Python310-OSS2 | Python 3.10, Custom.Debian10 | oss2 : SDK OSS pour Python | - | README.md |
| Python39-OSS2 | Python 3.9, Custom.Debian10 | oss2 : SDK OSS pour Python | - | README.md |
| Python310-TensorFlow2x | Python 3.10, Custom.Debian10 | Framework open source de machine learning (édition CPU) | tensorflow==2.15.0.post1 | README.md |
| Python3x-PyMongo4x | Python 3.10, Custom.Debian10 | Bibliothèque open source de calcul scientifique | PyMongo==4.6.1 | README.md |
| Python3x-Pandas2x | Python 3.9, Custom.Debian10 | Outil open source d'analyse et de traitement des données basé sur NumPy | pandas==2.2.1 | README.md |
| Python310-PyTorch2x | Python 3.10, Custom.Debian10 | Framework open source de machine learning (édition CPU) | torch==2.2.1+cpu | README.md |
| Python39-Pandas1x | Python 3.9, Custom, Custom.Debian10 | Outil open source d'analyse et de traitement des données basé sur NumPy | pandas==1.4.3 | README.md |
| Python39-SciPy1x | Python 3.9, Custom, Custom.Debian10 | Bibliothèque open source de calcul scientifique | scipy==1.9.0, numpy==1.23.2 | README.md |
| Python36-SciPy1x | Python 3.6, Custom | Bibliothèque open source de calcul scientifique | scipy-1.5.4, numpy-1.19.5 | README.md |
| Python39-PyTorch1x | Python 3.9, Custom, Custom.Debian10 | Framework open source de machine learning (édition CPU) | torch==1.12.1+cpu, torchaudio==0.12.1+cpu, torchvision==0.13.1+cpu | README.md |
| Python36-PyTorch1x | Python 3.6, Custom | Framework open source de machine learning (édition CPU) | torch==1.10.2+cpu, torchaudio==0.10.2+cpu, torchvision==0.11.3+cpu | README.md |
| Python3-Flask2x | Python 3.9, Python 3.10, Custom, Custom.Debian10 | Framework web léger basé sur Python | flask-v2.2.2 | README.md |
| Nodejs-Puppeteer17x | Node.js 16, Node.js 14, Custom, Custom.Debian10 | Outil Headless Chrome | puppeteer-v17.1.0 | README.md |
| Nodejs-Puppeteer10x | Node.js 14, Node.js 12, Node.js 10, Custom | Outil Headless Chrome | puppeteer-v10.2.0 | README.md |
| Nodejs-Puppeteer19x | Custom.Debian10 | Outil Headless Chrome | puppeteer-v19.8.5 | README.md |
| Python310-Opencv4x | Python 3.10, Custom.Debian10 | Bibliothèque multiplateforme de vision par ordinateur | opencv_python-4.7.0.68 | README.md |
| Python38-Playwright | Custom.Debian10 | Outil d'automatisation de pages web | playwright==1.31.1 | README.md |
| Poppler22x-Pdf2image | Python 3.10 | Bibliothèque de rendu de documents PDF | pdf2image-1.16.3, poppler-22.12.0 | README.md |
| SQLite3 | Python 3.9, Node.js 16, Node.js 14, Java 11, Java 8, Custom | Base de données relationnelle légère embarquée | 3.41.1 | README.md |
| FFmpeg6x | Python 3.10, Python 3.9, Node.js 16, Node.js 14, Java 11, Java 8, Custom, Custom.Debian10 | Boîte à outils open source pour l'enregistrement, la conversion et le streaming audio et vidéo | 6,0 | README.md |
| ServerlessDevs | Python 3.10, Python 3.9, Python 3, Node.js 16, Node.js 14, Java 11, Java 8, Go 1, .NetCore 3.1, PHP 7.2, Custom, Custom.Debian10 | Plateforme serverless open source offrant un ensemble robuste d'outils aux développeurs | 2.1.14 | README.md |
Frameworks web
| Layer public | Runtime compatible | Version de la bibliothèque principale | Références |
|---|---|---|---|
| Python3-Flask2x | Python 3.9, Python 3.10, Custom, Custom.Debian10 | flask-2.2.2 | README.md |
SDK Alibaba Cloud
| Layer public | Runtime compatible | Description | Références |
|---|---|---|---|
| Python310-Aliyun-SDK | Python 3.10, Custom.Debian10 | SDK Alibaba Cloud courants pour Python 3.10 | README.md |
| Python39-Aliyun-SDK | Python 3.9, Custom | SDK Alibaba Cloud courants pour Python 3.9 | README.md |
| Python36-Aliyun-SDK | Python 3.6, Custom | SDK Alibaba Cloud courants pour Python 3.6 | README.md |
| Nodejs-Aliyun-SDK | Node.js 20, Node.js 18, Node.js 16, Node.js 14, Custom, Custom.Debian10 | SDK Alibaba Cloud courants (Node.js 20, Node.js 18, Node.js 16 et Node.js 14) | README.md |
| Aliyun-DataX | Python 3.6, Python 3.9, Custom, Custom.Debian10 | Édition open source de DataWorks Data Integration d'Alibaba Cloud | README.md |
Fonctionnement des layers
Une fonction prend en charge jusqu'à cinq layers au total, combinant layers personnalisés et publics. Lorsque plusieurs layers sont configurés, Function Compute fusionne leur contenu dans le répertoire /opt selon un ordre inverse. Si deux layers contiennent des fichiers portant le même nom, le fichier du premier layer configuré prévaut sur ceux des layers suivants.
Ajouter un layer public dans la console
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une fonction Function Compute. Pour en créer une, consultez Créer une fonction.
Ajouter le layer
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, cliquez sur Functions.
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur le nom de la fonction à configurer.
Sur la page de détails de la fonction, cliquez sur l'onglet Configurations.
Dans l'arborescence de navigation de gauche, cliquez sur Layers, puis sur Modify.
Dans le panneau Layers, cliquez sur + Add Layer et sélectionnez Add Official Common Layer. Choisissez un layer dans la liste déroulante Official Common Layer ainsi qu'une version dans la liste déroulante Layer Version, puis cliquez sur Deploy.
Ajouter un layer public avec Serverless Devs
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Serverless Devs installé et Docker configuré. Consultez Démarrage rapide.
Serverless Devs configuré avec vos identifiants. Consultez Configurer Serverless Devs.
Ajouter le layer
-
Exécutez la commande suivante pour lister les layers publics officiels dans une région :
s cli fc layer list --official --region cn-hangzhouLa sortie affiche les layers disponibles avec leurs ARN. Copiez l'ARN du layer à utiliser.
- layerName: Python39-Aliyun-SDK arn: acs:fc:cn-hangzhou:official:layers/Python39-Aliyun-SDK/versions/3 version: 3 acl: 1 description: Python3.9 Aliyun SDK layer. compatibleRuntime: - custom - python3.9 - custom.debian10 - layerName: Python39-Package-Collection arn: acs:fc:cn-hangzhou:official:layers/Python39-Package-Collection/versions/3 version: 3 acl: 1 description: Python3.9 package collection layer. compatibleRuntime: - custom - custom.debian10Champs clés de la sortie :
Champ Description layerNameNom du layer versionVersion du layer arnARN de la version du layer, utilisé lors de l'attachement du layer à une fonction aclContrôle d'accès : 0= privé,1= publicdescriptionBrève description du layer compatibleRuntimeRuntimes pris en charge par ce layer -
Dans le répertoire de votre projet, créez un fichier
s.yamlet ajoutez l'ARN du layer au champlayers.edition: 3.0.0 name: hello-world-app access: "default" vars: # The global variables region: "cn-hangzhou" resources: hello_world: component: fc3 # The component name. actions: # The custom execution logic. props: region: ${vars.region} functionName: "emoji" description: 'this is a layer demo' runtime: "python3.9" code: ./code handler: index.handler memorySize: 512 timeout: 60 internetAccess: true layers: # The ARNs of the layers attached to the function. - acs:fc:cn-hangzhou:official:layers/Python39-Aliyun-SDK/versions/3 Créez un répertoire
codedans le répertoire de votre projet et placez-y le code de votre fonction.-
Exécutez la commande suivante pour déployer la fonction avec le layer configuré :
s deploy
Étapes suivantes
Gérez les layers par programmation à l'aide des opérations d'API CreateFunction et UpdateFunction.
Si l'erreur
xxx is not supported by layers'affiche lors de la configuration d'un layer, consultez Que faire si l'erreur « xxx is not supported by layer » est signalée lors de la configuration d'un layer pour une fonction ?