Mengemas semua dependensi ke dalam deployment package setiap fungsi menghasilkan arsip yang besar dan duplikasi upaya di seluruh fungsi. Function Compute menyediakan official public layer untuk lingkungan runtime umum dan library dependensi. Tambahkan public layer untuk berbagi dependensi antarfungsi tanpa perlu membangunnya ulang setiap saat.
Layer publik
Tabel berikut mencantumkan public layer yang tersedia berdasarkan kategori. Untuk daftar lengkap, lihat Public layer. Jika Anda memerlukan layer yang tidak tercantum, hubungi kami.
Custom runtime
Layer ini menyediakan lingkungan runtime untuk custom runtime seperti Python 3.10 dan Node.js 17. Beberapa layer juga menyertakan library dependensi umum. Misalnya, Python310-Package-Collection mencakup paket Python yang sering digunakan.
Lima layer terkait PHP dalam tabel berikut (PHP85-Debian12, PHP81-Debian10, PHP80-Debian10, PHP81, dan PHP80) mencakup perbaikan untuk CVE-2026-109618 dan CVE-2026-109619 (Common Vulnerabilities and Exposures). Dukungan untuk public layer PHP72 berakhir pada Oktober 2026. Dukungan untuk public layer PHP80 dan PHP81 serta public layer Debian 10 yang sesuai berakhir pada November 2026. Lakukan migrasi ke PHP85-Debian12 setelah memverifikasi kompatibilitas. Tanggal akhir dukungan ini mengikuti jadwal pemeliharaan public layer Function Compute, yang berbeda dari siklus dukungan PHP upstream.
| Public layer | Runtime yang kompatibel | Deskripsi | Referensi |
|---|---|---|---|
| PHP85-Debian12 | Custom.Debian12 | Layer runtime PHP 8.5 Debian 12 | README.md |
| PHP81-Debian10 | Custom.Debian10 | Layer runtime PHP 8.1 Debian 10. Jangan gunakan v1. | README.md |
| PHP80-Debian10 | Custom.Debian10 | Layer runtime PHP 8.0 Debian 10. Jangan gunakan v2 atau versi sebelumnya. | 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 | Kumpulan library dependensi umum untuk runtime Python 3.10 | README.md |
| Python39 | Custom, Custom.Debian10 | Layer runtime Python 3.9.13 | README.md |
| Python39-Package-Collection | Custom, Custom.Debian10 | Kumpulan library dependensi umum untuk runtime Python 3.9 | README.md |
| Python38 | Custom, Custom.Debian10 | Layer runtime Python 3.8.13 | README.md |
| Python38-Package-Collection | Custom, Custom.Debian10 | Kumpulan library dependensi umum untuk runtime Python 3.8.13 | README.md |
| Python36 | Custom | Layer runtime Python 3.6.15 | README.md |
| Python36-Package-Collection | Custom | Kumpulan library dependensi umum untuk runtime Python 3.6.15 | README.md |
| Dotnet6 | Custom, Custom.Debian10 | Layer runtime ASP.NET 6.0.5 | README.md |
| PHP81 | Custom | Layer runtime PHP 8.1. Jangan gunakan v6 atau versi sebelumnya. | README.md |
| PHP80 | Custom | Layer runtime PHP 8.0. Jangan gunakan v7 atau versi sebelumnya. | README.md |
| PHP72 | Custom | Layer runtime PHP 7.2. Jangan gunakan versi rilis apa pun. Lakukan migrasi setelah Anda memverifikasi kompatibilitas. | 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 |
| Nodejs24 | Custom.Debian10, Custom.Debian11, Custom.Debian12 | Layer runtime Node.js 24, versi 24.22.1 | README.md |
| Nodejs22 | Custom.Debian10, Custom.Debian11, Custom.Debian12 | Layer runtime Node.js 22, versi 22.23.4 | 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 |
-
Nama Sumber Daya Alibaba Cloud (ARN) dari official public layer menggunakan format
acs:fc:{region}:official:layers/{layerName}/versions/{version}. Gunakan nama layer dan nomor versi pada tabel sebelumnya, lalu ganti{region}dengan Wilayah fungsi Anda. Contoh:acs:fc:cn-hangzhou:official:layers/PHP85-Debian12/versions/1. -
Saat versi baru public layer dirilis, fungsi yang ada tidak akan diperbarui secara otomatis. Perbarui ARN layer yang direferensikan oleh setiap fungsi. Untuk detail kompatibilitas dan migrasi, lihat Panduan peningkatan keamanan public layer PHP.
Library dependensi umum
| Public layer | Runtime yang kompatibel | Deskripsi | Versi library inti | Referensi |
|---|---|---|---|---|
| Python310-OSS2 | Python 3.10, Custom.Debian10 | oss2: SDK Object Storage Service (OSS) untuk Python | - | README.md |
| Python39-OSS2 | Python 3.9, Custom.Debian10 | oss2: SDK OSS untuk Python | - | README.md |
| Python310-TensorFlow2x | Python 3.10, Custom.Debian10 | Framework machine learning open source (edisi CPU) | tensorflow==2.15.0.post1 | README.md |
| Python3x-PyMongo4x | Python 3.10, Custom.Debian10 | Driver MongoDB open source untuk Python | PyMongo==4.6.1 | README.md |
| Python3x-Pandas2x | Python 3.9, Custom.Debian10 | Tool analisis dan pemrosesan data open source berbasis NumPy | pandas==2.2.1 | README.md |
| Python310-PyTorch2x | Python 3.10, Custom.Debian10 | Framework machine learning open source (edisi CPU) | torch==2.2.1+cpu | README.md |
| Python39-Pandas1x | Python 3.9, Custom, Custom.Debian10 | Tool analisis dan pemrosesan data open source berbasis NumPy | pandas==1.4.3 | README.md |
| Python39-SciPy1x | Python 3.9, Custom, Custom.Debian10 | Pustaka komputasi ilmiah open source | scipy==1.9.0, numpy==1.23.2 | README.md |
| Python36-SciPy1x | Python 3.6, Custom | Pustaka komputasi ilmiah open source | scipy-1.5.4, numpy-1.19.5 | README.md |
| Python39-PyTorch1x | Python 3.9, Custom, Custom.Debian10 | Framework machine learning open source (edisi 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 machine learning open source (edisi CPU) | torch==1.10.2+cpu, torchaudio==0.10.2+cpu, torchvision==0.11.3+cpu | README.md |
| Python3-Flask3x | Python 3.10, Custom.Debian11, Custom.Debian10 | Web framework ringan berbasis Python | flask-v3 | README.md |
| Python3-Flask2x | Python 3.9, Python 3.10, Custom, Custom.Debian10 | Web framework ringan berbasis Python | flask-v2.2.2 | README.md |
| Nodejs-Puppeteer17x | Node.js 16, Node.js 14, Custom, Custom.Debian10 | Tool Headless Chrome | puppeteer-v17.1.0 | README.md |
| Nodejs-Puppeteer10x | Node.js 14, Node.js 12, Node.js 10, Custom | Alat Headless Chrome | puppeteer-v10.2.0 | README.md |
| Nodejs-Puppeteer19x | Custom.Debian10 | Tool Headless Chrome | puppeteer-v19.8.5 | README.md |
| Python310-Opencv4x | Python 3.10, Custom.Debian10 | Library lintas platform untuk computer vision | opencv_python-4.7.0.68 | README.md |
| Python38-Playwright | Custom.Debian10 | Tool untuk otomatisasi halaman web | playwright==1.31.1 | README.md |
| Poppler22x-Pdf2image | Python 3.10 | Library untuk rendering dokumen 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 | Database relasional in-process yang ringan | 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 | Toolkit open source untuk merekam, mengonversi, dan streaming audio serta video | 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 | Platform serverless open source yang menyediakan serangkaian tool untuk pengembang | 2.1.14 | README.md |
Web framework
| Public layer | Runtime yang kompatibel | Versi library inti | Referensi |
|---|---|---|---|
| Python3-Flask2x | Python 3.9, Python 3.10, Custom, Custom.Debian10 | flask-v2.2.2 | README.md |
SDK Alibaba Cloud
| Public layer | Runtime yang kompatibel | Deskripsi | Referensi |
|---|---|---|---|
| Python312-Aliyun-SDK | Python 3.12, Custom.Debian11 | SDK Alibaba Cloud umum untuk Python 3.12 | README.md |
| Python310-Aliyun-SDK | Python 3.10, Custom.Debian10 | SDK Alibaba Cloud umum untuk Python 3.10 | README.md |
| Python39-Aliyun-SDK | Python 3.9, Custom | SDK Alibaba Cloud umum untuk Python 3.9 | README.md |
| Python36-Aliyun-SDK | Python 3.6, Custom | SDK Alibaba Cloud umum untuk 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 umum (Node.js 20, Node.js 18, Node.js 16, dan Node.js 14) | README.md |
| Aliyun-DataX | Python 3.6, Python 3.9, Custom, Custom.Debian10 | Edisi open source dari DataWorks Data Integration Alibaba Cloud | README.md |
Cara kerja layer
Sebuah fungsi mendukung hingga lima layer secara total, yang merupakan gabungan dari custom layer dan public layer. Saat beberapa layer dikonfigurasi, Function Compute menggabungkan isinya ke dalam direktori /opt secara berurutan terbalik. Jika dua layer berisi file dengan nama yang sama, file dari layer yang dikonfigurasi pertama kali akan diprioritaskan dibandingkan file pada layer berikutnya.
Menambahkan public layer di Konsol
Di Konsol, public layer diberi label Common Layer.
Prasyarat
Sebelum memulai, pastikan bahwa Anda memiliki:
-
Fungsi Function Compute. Untuk membuatnya, lihat Membuat fungsi.
Menambahkan layer
-
Masuk ke Konsol Function Compute. Pada panel navigasi kiri, klik Functions.
-
Di bilah navigasi atas, pilih Wilayah. Pada halaman Functions, klik nama fungsi yang ingin dikonfigurasi.
-
Pada halaman detail fungsi, klik tab Configurations.
-
Di bagian Advanced Configuration, klik Edit.
-
Di panel Advanced Configuration, klik + Add Layer dan pilih Add Official Common Layer. Pilih layer dari daftar drop-down Official Common Layer dan versi dari daftar drop-down Layer Version, lalu klik Deploy.
Menambahkan public layer menggunakan Serverless Devs
Prasyarat
Sebelum memulai, pastikan bahwa Anda memiliki:
-
Serverless Devs terinstal dan Docker terkonfigurasi. Lihat Panduan cepat.
-
Serverless Devs terkonfigurasi dengan kredensial Anda. Lihat Mengonfigurasi Serverless Devs.
Menambahkan layer
-
Daftar official public layer di suatu Wilayah:
s cli fc layer list --official --region cn-hangzhouOutput menampilkan daftar layer yang tersedia beserta ARN-nya. Salin ARN layer yang ingin digunakan.
- 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.debian10Bidang utama dalam output:
Bidang Deskripsi layerNameNama layer versionVersi layer arnARN versi layer, digunakan saat menyambungkan layer ke fungsi aclKontrol akses: 0= privat,1= publikdescriptionDeskripsi singkat tentang layer compatibleRuntimeRuntime yang didukung oleh layer ini -
Di direktori Proyek Anda, buat file
s.yamldan tambahkan ARN layer ke bidanglayers.edition: 3.0.0 name: hello-world-app access: "default" vars: # Variabel global region: "cn-hangzhou" resources: hello_world: component: fc3 # Nama komponen. # actions: # Logika eksekusi kustom. 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: # ARN layer yang disambungkan ke fungsi. - acs:fc:cn-hangzhou:official:layers/Python39-Aliyun-SDK/versions/3 -
Buat direktori
codedi direktori Proyek Anda dan tempatkan Kode fungsi Anda di dalamnya. -
Deploy fungsi dengan layer yang telah dikonfigurasi:
s deploy
Langkah selanjutnya
-
Kelola layer secara terprogram menggunakan Operasi API CreateFunction dan UpdateFunction.
-
Jika Anda melihat error
xxx is not supported by layersaat mengonfigurasi layer, lihat Apa yang harus saya lakukan jika "xxx is not supported by layer" dilaporkan saat saya mengonfigurasi layer untuk sebuah fungsi?