Tüm bağımlılıkları her işlevin dağıtım paketine dahil etmek, büyük arşivlere ve işlevler arasında tekrarlanan çabalara yol açar. Function Compute, yaygın çalışma zamanları ve bağımlılık kütüphaneleri için resmi genel katmanlar sağlar. Bir genel katman ekleyerek, bağımlılıklarınızı her seferinde yeniden oluşturmak yerine işlevler arasında paylaşabilirsiniz.
Genel katmanlar
Aşağıdaki tablolar, mevcut genel katmanları kategoriye göre listeler. Tam liste için bkz. Genel katmanlar. Listelenmeyen bir katmana ihtiyacınız varsa bizimle iletişime geçin.
Özel çalışma zamanları
Bu katmanlar, Python 3.10 ve Node.js 17 gibi özel çalışma zamanları için çalışma zamanı ortamları sağlar. Bazı katmanlar yaygın bağımlılık kütüphanelerini de içerir; örneğin, Python310-Package-Collection sık kullanılan Python paketlerini içerir.
| Genel katman | Uyumlu çalışma zamanı | Açıklama | Başvurular |
|---|---|---|---|
| PHP81-Debian10 | Custom.Debian10 | PHP 8.1 Debian 10 çalışma zamanı katmanı | README.md |
| PHP80-Debian10 | Custom.Debian10 | PHP 8.0 Debian 10 çalışma zamanı katmanı | README.md |
| Nginx | Custom.Debian10 | Nginx Debian 10 çalışma zamanı katmanı | README.md |
| Python310 | Custom, Custom.Debian10 | Python 3.10.5 çalışma zamanı katmanı | README.md |
| Python310-Package-Collection | Custom.Debian10 | Python 3.10 çalışma zamanı için yaygın bağımlılık kütüphaneleri koleksiyonu | README.md |
| Python39 | Custom, Custom.Debian10 | Python 3.9.13 çalışma zamanı katmanı | README.md |
| Python39-Package-Collection | Custom, Custom.Debian10 | Python 3.9 çalışma zamanı için yaygın bağımlılık kütüphaneleri koleksiyonu | README.md |
| Python38 | Custom, Custom.Debian10 | Python 3.8.13 çalışma zamanı katmanı | README.md |
| Python38-Package-Collection | Custom, Custom.Debian10 | Python 3.8.13 çalışma zamanı için yaygın bağımlılık kütüphaneleri koleksiyonu | README.md |
| Python36 | Custom | Python 3.6.15 çalışma zamanı katmanı | README.md |
| Python36-Package-Collection | Custom | Python 3.6.15 çalışma zamanı için yaygın bağımlılık kütüphaneleri koleksiyonu | README.md |
| Dotnet6 | Custom, Custom.Debian10 | ASP.NET 6.0.5 çalışma zamanı katmanı | README.md |
| PHP72 | Custom | PHP 7.2 çalışma zamanı katmanı | README.md |
| Java8 | Custom.Debian10 | Java 8 çalışma zamanı katmanı | README.md |
| Java11 | Custom, Custom.Debian10 | Java 11 çalışma zamanı katmanı | README.md |
| Java17 | Custom, Custom.Debian10 | Java 17 çalışma zamanı katmanı | README.md |
| Java21 | Custom.Debian10 | Java 21 çalışma zamanı katmanı | README.md |
| Nodejs20 | Custom.Debian10 | Node.js 20 çalışma zamanı katmanı | README.md |
| Nodejs18 | Custom.Debian10 | Node.js 18 çalışma zamanı katmanı | README.md |
| Nodejs17 | Custom | Node.js 17 çalışma zamanı katmanı | README.md |
| Nodejs16 | Custom, Custom.Debian10 | Node.js 16 çalışma zamanı katmanı | README.md |
| Nodejs14 | Custom | Node.js 14 çalışma zamanı katmanı | README.md |
| Nodejs12 | Custom | Node.js 12 çalışma zamanı katmanı | README.md |
| Go1 | Custom.Debian10 | Go 1 çalışma zamanı katmanı | README.md |
| Go118 | Custom | Go 1.x çalışma zamanı katmanı | README.md |
Yaygın bağımlılık kütüphaneleri
| Genel katman | Uyumlu çalışma zamanı | Açıklama | Çekirdek kütüphane sürümü | Başvurular |
|---|---|---|---|---|
| Python310-OSS2 | Python 3.10, Custom.Debian10 | oss2: Python için OSS SDK'sı | - | README.md |
| Python39-OSS2 | Python 3.9, Custom.Debian10 | oss2: Python için OSS SDK'sı | - | README.md |
| Python310-TensorFlow2x | Python 3.10, Custom.Debian10 | Açık kaynaklı makine öğrenimi çerçevesi (CPU sürümü) | tensorflow==2.15.0.post1 | README.md |
| Python3x-PyMongo4x | Python 3.10, Custom.Debian10 | Açık kaynaklı bilimsel hesaplama kütüphanesi | PyMongo==4.6.1 | README.md |
| Python3x-Pandas2x | Python 3.9, Custom.Debian10 | NumPy tabanlı açık kaynaklı veri analizi ve işleme aracı | pandas==2.2.1 | README.md |
| Python310-PyTorch2x | Python 3.10, Custom.Debian10 | Açık kaynaklı makine öğrenimi çerçevesi (CPU sürümü) | torch==2.2.1+cpu | README.md |
| Python39-Pandas1x | Python 3.9, Custom, Custom.Debian10 | NumPy tabanlı açık kaynaklı veri analizi ve işleme aracı | pandas==1.4.3 | README.md |
| Python39-SciPy1x | Python 3.9, Custom, Custom.Debian10 | Açık kaynaklı bilimsel hesaplama kütüphanesi | scipy==1.9.0, numpy==1.23.2 | README.md |
| Python36-SciPy1x | Python 3.6, Custom | Açık kaynaklı bilimsel hesaplama kütüphanesi | scipy-1.5.4, numpy-1.19.5 | README.md |
| Python39-PyTorch1x | Python 3.9, Custom, Custom.Debian10 | Açık kaynaklı makine öğrenimi çerçevesi (CPU sürümü) | torch==1.12.1+cpu, torchaudio==0.12.1+cpu, torchvision==0.13.1+cpu | README.md |
| Python36-PyTorch1x | Python 3.6, Custom | Açık kaynaklı makine öğrenimi çerçevesi (CPU sürümü) | 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 | Python tabanlı hafif web çerçevesi | flask-v2.2.2 | README.md |
| Nodejs-Puppeteer17x | Node.js 16, Node.js 14, Custom, Custom.Debian10 | Headless Chrome aracı | puppeteer-v17.1.0 | README.md |
| Nodejs-Puppeteer10x | Node.js 14, Node.js 12, Node.js 10, Custom | Headless Chrome aracı | puppeteer-v10.2.0 | README.md |
| Nodejs-Puppeteer19x | Custom.Debian10 | Headless Chrome aracı | puppeteer-v19.8.5 | README.md |
| Python310-Opencv4x | Python 3.10, Custom.Debian10 | Bilgisayarlı görü için çapraz platform kütüphanesi | opencv_python-4.7.0.68 | README.md |
| Python38-Playwright | Custom.Debian10 | Web sayfası otomasyonu aracı | playwright==1.31.1 | README.md |
| Poppler22x-Pdf2image | Python 3.10 | PDF belgelerini oluşturma kütüphanesi | 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 | Hafif, süreç içi ilişkisel veritabanı | 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 | Ses ve video kaydetme, dönüştürme ve akış sağlama için açık kaynaklı araç seti | 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 | Geliştiriciler için sağlam bir araç seti sağlayan açık kaynaklı sunucusuz platform | 2.1.14 | README.md |
Web çerçeveleri
| Genel katman | Uyumlu çalışma zamanı | Çekirdek kütüphane sürümü | Başvurular |
|---|---|---|---|
| Python3-Flask2x | Python 3.9, Python 3.10, Custom, Custom.Debian10 | flask-2.2.2 | README.md |
Alibaba Cloud SDK'leri
| Genel katman | Uyumlu çalışma zamanı | Açıklama | Başvurular |
|---|---|---|---|
| Python310-Aliyun-SDK | Python 3.10, Custom.Debian10 | Python 3.10 için yaygın Alibaba Cloud SDK'leri | README.md |
| Python39-Aliyun-SDK | Python 3.9, Custom | Python 3.9 için yaygın Alibaba Cloud SDK'leri | README.md |
| Python36-Aliyun-SDK | Python 3.6, Custom | Python 3.6 için yaygın Alibaba Cloud SDK'leri | README.md |
| Nodejs-Aliyun-SDK | Node.js 20, Node.js 18, Node.js 16, Node.js 14, Custom, Custom.Debian10 | Yaygın Alibaba Cloud SDK'leri (Node.js 20, Node.js 18, Node.js 16 ve Node.js 14) | README.md |
| Aliyun-DataX | Python 3.6, Python 3.9, Custom, Custom.Debian10 | Alibaba Cloud DataWorks Veri Entegrasyonunun açık kaynaklı sürümü | README.md |
Katmanların çalışma şekli
Bir işlev, özel ve genel katmanların birleşimiyle toplamda en fazla beş katmanı destekler. Birden çok katman yapılandırıldığında, Function Compute bunların içeriğini ters sırada /opt dizininde birleştirir. İki katman aynı ada sahip dosyalar içeriyorsa, ilk yapılandırılan katmandaki dosya sonraki katmanlardaki dosyalara göre öncelik kazanır.
Konsolda genel katman ekleme
Önkoşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Bir Function Compute işlevi. Oluşturmak için bkz. İşlev oluşturma.
Katman ekleme
Function Compute konsoluna giriş yapın. Sol gezinme bölmesinde Functions seçeneğine tıklayın.
Üst gezinme çubuğunda bir bölge seçin. Functions sayfasında, yapılandırmak istediğiniz işlevin adına tıklayın.
İşlev ayrıntıları sayfasında Configurations sekmesine tıklayın.
Sol gezinme ağacında Layers seçeneğine tıklayın, ardından Modify seçeneğine tıklayın.
Layers panelinde + Add Layer seçeneğine tıklayın ve Add Official Common Layer seçeneğini belirleyin. Official Common Layer açılır listesinden bir katman ve Layer Version açılır listesinden bir sürüm seçin, ardından Deploy seçeneğine tıklayın.
Serverless Devs kullanarak genel katman ekleme
Önkoşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Yüklenmiş Serverless Devs ve yapılandırılmış Docker. Bkz. Hızlı başlangıç.
Kimlik bilgilerinizle yapılandırılmış Serverless Devs. Bkz. Serverless Devs'i yapılandırma.
Katman ekleme
-
Bir bölgedeki resmi genel katmanları listelemek için aşağıdaki komutu çalıştırın:
s cli fc layer list --official --region cn-hangzhouÇıktı, ARN'leriyle birlikte kullanılabilir katmanları listeler. Kullanmak istediğiniz katmanın ARN'sini kopyalayın.
- 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.debian10Çıktıdaki anahtar alanlar:
Alan Açıklama layerNameKatmanın adı versionKatman sürümü arnKatmanı bir işleve eklerken kullanılan katman sürümünün ARN'si aclErişim kontrolü: 0= özel,1= geneldescriptionKatmanın kısa açıklaması compatibleRuntimeBu katmanın desteklediği çalışma zamanları -
Proje dizininizde bir
s.yamldosyası oluşturun ve katman ARN'sinilayersalanına ekleyin.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 Proje dizininizde bir
codedizini oluşturun ve işlev kodunuzu bu dizine yerleştirin.-
Katman yapılandırılmış olarak işlevi dağıtmak için aşağıdaki komutu çalıştırın:
s deploy
Sonraki adımlar
CreateFunction ve UpdateFunction API işlemlerini kullanarak katmanları programatik olarak yönetin.
Bir katman yapılandırırken
xxx is not supported by layerhatasını görürseniz bkz. Bir işlev için katman yapılandırırken "xxx is not supported by layer" hatası alınırsa ne yapılmalıdır?