Incluir todas as dependências no pacote de implantação de cada função gera arquivos grandes e duplica esforços entre funções. O Function Compute oferece camadas públicas oficiais para runtimes comuns e bibliotecas de dependências. Adicione uma camada pública para compartilhar dependências entre funções sem precisar recompilá-las a cada vez.
Camadas públicas
As tabelas a seguir listam as camadas públicas disponíveis por categoria. Para obter a lista completa, consulte Camadas públicas. Caso precise de uma camada não listada, entre em contato conosco.
Runtimes personalizados
Essas camadas fornecem ambientes de execução para runtimes personalizados, como Python 3.10 e Node.js 17. Algumas também incluem bibliotecas de dependências comuns. Por exemplo, Python310-Package-Collection contém pacotes Python frequentemente utilizados.
|
Camada pública |
Runtime compatível |
Descrição |
Referências |
|
PHP81-Debian10 |
Custom.Debian10 |
Camada de runtime PHP 8.1 Debian 10 |
|
|
PHP80-Debian10 |
Custom.Debian10 |
Camada de runtime PHP 8.0 Debian 10 |
|
|
Nginx |
Custom.Debian10 |
Camada de runtime Nginx Debian 10 |
|
|
Python310 |
Custom, Custom.Debian10 |
Camada de runtime Python 3.10.5 |
|
|
Python310-Package-Collection |
Custom.Debian10 |
Coleção de bibliotecas de dependências comuns para o runtime Python 3.10 |
|
|
Python39 |
Custom, Custom.Debian10 |
Camada de runtime Python 3.9.13 |
|
|
Python39-Package-Collection |
Custom, Custom.Debian10 |
Coleção de bibliotecas de dependências comuns para o runtime Python 3.9 |
|
|
Python38 |
Custom, Custom.Debian10 |
Camada de runtime Python 3.8.13 |
|
|
Python38-Package-Collection |
Custom, Custom.Debian10 |
Coleção de bibliotecas de dependências comuns para o runtime Python 3.8.13 |
|
|
Python36 |
Custom |
Camada de runtime Python 3.6.15 |
|
|
Python36-Package-Collection |
Custom |
Coleção de bibliotecas de dependências comuns para o runtime Python 3.6.15 |
|
|
Dotnet6 |
Custom, Custom.Debian10 |
Camada de runtime ASP.NET 6.0.5 |
|
|
PHP72 |
Custom |
Camada de runtime PHP 7.2 |
|
|
Java8 |
Custom.Debian10 |
Camada de runtime Java 8 |
|
|
Java11 |
Custom, Custom.Debian10 |
Camada de runtime Java 11 |
|
|
Java17 |
Custom, Custom.Debian10 |
Camada de runtime Java 17 |
|
|
Java21 |
Custom.Debian10 |
Camada de runtime Java 21 |
|
|
Nodejs20 |
Custom.Debian10 |
Camada de runtime Node.js 20 |
|
|
Nodejs18 |
Custom.Debian10 |
Camada de runtime Node.js 18 |
|
|
Nodejs17 |
Custom |
Camada de runtime Node.js 17 |
|
|
Nodejs16 |
Custom, Custom.Debian10 |
Camada de runtime Node.js 16 |
|
|
Nodejs14 |
Custom |
Camada de runtime Node.js 14 |
|
|
Nodejs12 |
Custom |
Camada de runtime Node.js 12 |
|
|
Go1 |
Custom.Debian10 |
Camada de runtime Go 1 |
|
|
Go118 |
Custom |
Camada de runtime Go 1.x |
Bibliotecas de dependências comuns
|
Camada pública |
Runtime compatível |
Descrição |
Versão da biblioteca principal |
Referências |
|
Python310-OSS2 |
Python 3.10, Custom.Debian10 |
oss2: SDK do OSS para Python |
- |
|
|
Python39-OSS2 |
Python 3.9, Custom.Debian10 |
oss2: SDK do OSS para Python |
- |
|
|
Python310-TensorFlow2x |
Python 3.10, Custom.Debian10 |
Framework de machine learning open source (edição CPU) |
tensorflow==2.15.0.post1 |
|
|
Python3x-PyMongo4x |
Python 3.10, Custom.Debian10 |
Biblioteca de computação científica open source |
PyMongo==4.6.1 |
|
|
Python3x-Pandas2x |
Python 3.9, Custom.Debian10 |
Ferramenta de análise e processamento de dados open source baseada em NumPy |
pandas==2.2.1 |
|
|
Python310-PyTorch2x |
Python 3.10, Custom.Debian10 |
Framework de machine learning open source (edição CPU) |
torch==2.2.1+cpu |
|
|
Python39-Pandas1x |
Python 3.9, Custom, Custom.Debian10 |
Ferramenta de análise e processamento de dados open source baseada em NumPy |
pandas==1.4.3 |
|
|
Python39-SciPy1x |
Python 3.9, Custom, Custom.Debian10 |
Biblioteca de computação científica open source |
scipy==1.9.0, numpy==1.23.2 |
|
|
Python36-SciPy1x |
Python 3.6, Custom |
Biblioteca de computação científica open source |
scipy-1.5.4, numpy-1.19.5 |
|
|
Python39-PyTorch1x |
Python 3.9, Custom, Custom.Debian10 |
Framework de machine learning open source (edição CPU) |
torch==1.12.1+cpu, torchaudio==0.12.1+cpu, torchvision==0.13.1+cpu |
|
|
Python36-PyTorch1x |
Python 3.6, Custom |
Framework de machine learning open source (edição CPU) |
torch==1.10.2+cpu, torchaudio==0.10.2+cpu, torchvision==0.11.3+cpu |
|
|
Python3-Flask2x |
Python 3.9, Python 3.10, Custom, Custom.Debian10 |
Framework web leve baseado em Python |
flask-v2.2.2 |
|
|
Nodejs-Puppeteer17x |
Node.js 16, Node.js 14, Custom, Custom.Debian10 |
Ferramenta Headless Chrome |
puppeteer-v17.1.0 |
|
|
Nodejs-Puppeteer10x |
Node.js 14, Node.js 12, Node.js 10, Custom |
Ferramenta Headless Chrome |
puppeteer-v10.2.0 |
|
|
Nodejs-Puppeteer19x |
Custom.Debian10 |
Ferramenta Headless Chrome |
puppeteer-v19.8.5 |
|
|
Python310-Opencv4x |
Python 3.10, Custom.Debian10 |
Biblioteca multiplataforma para visão computacional |
opencv_python-4.7.0.68 |
|
|
Python38-Playwright |
Custom.Debian10 |
Ferramenta para automação de páginas web |
playwright==1.31.1 |
|
|
Poppler22x-Pdf2image |
Python 3.10 |
Biblioteca para renderização de documentos PDF |
pdf2image-1.16.3, poppler-22.12.0 |
|
|
SQLite3 |
Python 3.9, Node.js 16, Node.js 14, Java 11, Java 8, Custom |
Banco de dados relacional leve em processo |
3.41.1 |
|
|
FFmpeg6x |
Python 3.10, Python 3.9, Node.js 16, Node.js 14, Java 11, Java 8, Custom, Custom.Debian10 |
Toolkit open source para gravação, conversão e streaming de áudio e vídeo |
6,0 |
|
|
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 |
Plataforma serverless open source com um conjunto robusto de ferramentas para desenvolvedores |
2.1.14 |
Frameworks web
|
Camada pública |
Runtime compatível |
Versão da biblioteca principal |
Referências |
|
Python3-Flask2x |
Python 3.9, Python 3.10, Custom, Custom.Debian10 |
flask-2.2.2 |
SDKs da Alibaba Cloud
|
Camada pública |
Runtime compatível |
Descrição |
Referências |
|
Python310-Aliyun-SDK |
Python 3.10, Custom.Debian10 |
SDKs comuns da Alibaba Cloud para Python 3.10 |
|
|
Python39-Aliyun-SDK |
Python 3.9, Custom |
SDKs comuns da Alibaba Cloud para Python 3.9 |
|
|
Python36-Aliyun-SDK |
Python 3.6, Custom |
SDKs comuns da Alibaba Cloud para Python 3.6 |
|
|
Nodejs-Aliyun-SDK |
Node.js 20, Node.js 18, Node.js 16, Node.js 14, Custom, Custom.Debian10 |
SDKs comuns da Alibaba Cloud (Node.js 20, Node.js 18, Node.js 16 e Node.js 14) |
|
|
Aliyun-DataX |
Python 3.6, Python 3.9, Custom, Custom.Debian10 |
Edição open source do Data Integration do DataWorks da Alibaba Cloud |
Como as camadas funcionam
Uma função suporta até cinco camadas no total, combinando camadas personalizadas e públicas. Ao configurar várias camadas, o Function Compute mescla o conteúdo delas no diretório /opt em ordem inversa. Se duas camadas contiverem arquivos com o mesmo nome, o arquivo da primeira camada configurada terá precedência sobre os das camadas subsequentes.
Adicionar uma camada pública no console
Pré-requisitos
Antes de começar, verifique se você tem:
Uma função do Function Compute. Para criar uma, consulte Crie uma função.
Adicionar a camada
Faça login no console do Function Compute. No painel de navegação à esquerda, clique em Functions.
Na barra de navegação superior, selecione uma região. Na página Functions, clique no nome da função que deseja configure.
Na página de detalhes da função, clique na aba Configurations.
Na árvore de navegação à esquerda, clique em Layers e depois em Modify.
No painel Layers, clique em + Add Layer e selecione Add Official Common Layer. Escolha uma camada na lista suspensa Official Common Layer e uma versão na lista suspensa Layer Version. Em seguida, clique em Deploy.
Adicionar uma camada pública usando Serverless Devs
Pré-requisitos
Antes de começar, verifique se você tem:
Serverless Devs instale e Docker configurado. Consulte Início rápido.
Serverless Devs configure com suas credenciais. Consulte Configure Serverless Devs.
Adicionar a camada
-
Execute o comando a seguir para listar as camadas públicas oficiais em uma região:
s cli fc layer list --official --region cn-hangzhouA saída lista as camadas disponíveis com seus ARNs. Copie o ARN da camada que deseja usar.
- 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.debian10Principais campos na saída:
Campo
Descrição
layerNameNome da camada
versionVersão da camada
arnARN da versão da camada, usado ao anexar a camada a uma função
aclControle de acesso:
0= privado,1= públicodescriptionBreve descrição da camada
compatibleRuntimeRuntimes compatíveis com esta camada
-
No diretório do seu projeto, crie um arquivo
s.yamle adicione o ARN da camada ao campolayers.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 Crie um diretório
codeno diretório do seu projeto e coloque o código da função dentro dele.-
Execute o comando a seguir para implantar a função com a camada configurada:
s deploy
Próximos passos
Gerencie camadas programaticamente usando as operações de API CreateFunction e UpdateFunction.
Se encontrar o erro
xxx is not supported by layerao configurar uma camada, consulte O que fazer se "xxx is not supported by layer" for reportado ao configurar uma camada para uma função?