Todos os produtos
Search
Central de documentação

:Criar uma camada personalizada

Última atualização: Jul 04, 2026

As camadas empacotam dependências compartilhadas, runtimes e extensões de função para reutilização em várias funções. Extraia bibliotecas comuns para camadas ou use as camadas comuns do Function Compute para reduzir o tamanho do pacote de código.

Observações de uso

  • Empacote todo o conteúdo da camada em um arquivo ZIP. Os runtimes do Function Compute extraem as camadas para o diretório /opt.

  • Quando uma função possui múltiplas camadas, os conteúdos são mesclados no diretório /opt em ordem inversa. Arquivos em camadas superiores sobrescrevem arquivos com o mesmo nome em camadas inferiores.

  • Se a camada incluir bibliotecas binárias ou executáveis, compile-os em um sistema Linux. Recomenda-se o Debian 9.

  • Caso uma dependência da camada exija conjuntos de instruções específicos, utilize uma máquina AMD64 ou faça a compilação cruzada para garantir compatibilidade com os runtimes do Function Compute.

Diretórios de camada por runtime

Para runtimes que suportam camadas, o Function Compute adiciona diretórios específicos do runtime ao caminho de busca de dependências. Se o ZIP da sua camada seguir a estrutura de pastas abaixo, o código da função carrega as dependências da camada sem precisar especificar o caminho completo.

Directories that can be added in each runtime

Runtime

Diretório

Python

/opt/python

Node.js

/opt/nodejs/node_modules

Java

/opt/java/lib

PHP

/opt/php

Outros runtimes (exceto runtimes personalizados e runtimes Custom Container)

/opt/bin (PATH)

/opt/lib (LD_LIBRARY_PATH)

File structures of the ZIP packages in each runtime

File structure after the requests dependency is used for packaging
my-layer-code.zip
└── python
    └── requests

Path after the ZIP package is decompressed and deployed
/
└── opt
    └── python
        └── requests
File structure after the uuid dependency is used for packaging
my-layer-code.zip
└── nodejs
    ├── node_modules
    │   └── uuid
    ├── package-lock.json
    └── package.json

Path after the ZIP package is decompressed and deployed
/
└── opt
    └── nodejs
        ├── node_modules
        │   └── uuid
        ├── package-lock.json
        └── package.json
File structure after the jackson-core dependency is used for packaging
my-layer-code.zip
└── java
    └── lib
        └── commons-lang3-3.12.0.jar

Path after the ZIP package is decompressed and deployed
/
└── opt
    └── java
        └── lib
            └── commons-lang3-3.12.0.jar
File structure after the composer dependency is used for packaging
my-layer-code.zip
└── php
    ├──composer.json
    ├──composer.lock
    └──vendor

Path after the ZIP file is decompressed and deployed
/
└── opt
    └── php
        ├──composer.json
        ├──composer.lock
        └──vendor

Criar um pacote ZIP para uma camada

Empacote o conteúdo da camada em um arquivo ZIP. Os runtimes do Function Compute o extraem para o diretório /opt.

A criação de um ZIP de camada segue a mesma abordagem da criação de um pacote de código. Os diretórios de biblioteca da camada devem obedecer às regras padrão de empacotamento de cada linguagem. Para mais informações, consulte Diretórios de camada por runtime. Ao seguir essas regras, os runtimes do Function Compute adicionam automaticamente os caminhos de busca de bibliotecas. Para personalizar a estrutura de diretórios da camada, adicione explicitamente os caminhos de busca de dependências no seu código. Para mais informações, consulte Como referenciar dependências de uma camada em um Custom Runtime

As abas a seguir mostram como criar o pacote ZIP da camada para cada runtime.

Nota
  • A linguagem de programação na sua máquina local deve corresponder ao runtime do Function Compute.

  • O diretório my-layer-code é apenas um exemplo. Substitua-o pelo seu diretório real.

Runtimes Python runtime

Nota

A versão do Python na sua máquina local deve corresponder à versão do runtime do Function Compute.

  1. Crie um diretório de trabalho:

    mkdir my-layer-code
  2. Acesse o diretório de trabalho.

    cd my-layer-code
  3. Instale a biblioteca de dependências em my-layer-code/python:

    pip install --target ./python ${PackageName}

    Substitua ${PackageName} pelo nome da biblioteca de dependências. As opções do comando pip install estão documentadas na referência pip install.

    Código de exemplo:

    pip install --target ./python numpy

    Verifique a estrutura de diretórios resultante:

    my-layer-code
    └── python
        ├── bin
        ├── numpy
        ├── numpy-1.22.4.dist-info
        └── numpy.libs
  4. Empacote as dependências a partir do diretório my-layer-code:

    zip -r my-layer-code.zip python

Runtimes Node.js runtime

Nota

A versão do Node.js na sua máquina local deve corresponder à versão do runtime do Function Compute.

  1. Crie um diretório de trabalho:

    mkdir my-layer-code
  2. Acesse o diretório de trabalho.

    cd my-layer-code
  3. Instale a biblioteca de dependências em my-layer-code/nodejs:

    npm install --prefix ./nodejs --save ${PackageName}

    Substitua ${PackageName} pelo nome da biblioteca de dependências. As opções do comando npm install estão documentadas na referência npm-install.

    Código de exemplo:

    npm install --prefix ./nodejs --save uuid

    Verifique a estrutura de diretórios resultante:

    my-layer-code
    └── nodejs
        ├── node_modules
        │ └── uuid
        ├── package-lock.json
        └── package.json
  4. Empacote a dependência a partir de my-layer-code:

    zip -r my-layer-code.zip nodejs

Runtimes Java runtime

  1. Crie um diretório de trabalho:

    mkdir my-layer-code/java
  2. Acesse o diretório de trabalho.

    cd my-layer-code/java
  3. Instale as dependências usando o Maven.

    1. Crie o arquivo pom.xml no diretório my-layer-code/java.

      Exemplo:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>maven.util</groupId>
          <artifactId>install-layer</artifactId>
          <version>1.0</version>
          <!-- The Maven dependencies to download -->
          <dependencies>
              <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
              <dependency>
                  <groupId>org.apache.commons</groupId>
                  <artifactId>commons-lang3</artifactId>
                  <version>3.12.0</version>
              </dependency>
          </dependencies>
          <build>
              <plugins>
                  <!-- Maven-related download plug-ins -->
                  <plugin>
                      <artifactId>maven-dependency-plugin</artifactId>
                      <configuration>
                          <!-- Specify whether to exclude indirect dependencies. Default value: false. -->
                          <excludeTransitive>false</excludeTransitive>
                          <!-- Specify whether to remove the version information in the suffix of the dependency JAR package. Default value: false. -->
                          <stripVersion>false</stripVersion>
                          <!-- The path of the output file-->
                          <outputDirectory>./lib</outputDirectory>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </project>

      Descrição

      • O pacote de dependência a ser instalado é org.apache.commons.lang3.

      • Utilize o maven-dependency-plugin para copiar o pacote de dependências para o diretório /java/lib.

    2. Instale as dependências no diretório my-layer-code/java:

      mvn dependency:copy-dependencies

    Verifique a estrutura de diretórios resultante:

    my-layer-code
    └── java
        └── lib
            └── commons-lang3-3.12.0.jar
  4. Empacote as dependências a partir do diretório my-layer-code:

    zip -r my-layer-code.zip java

Runtimes PHP runtime

  1. Crie um diretório de trabalho:

    mkdir -p my-layer-code/php
  2. Acesse o diretório de trabalho.

    cd my-layer-code/php
  3. (Recomendado) Use o Composer para instalar as dependências.

    1. Crie o arquivo composer.json no diretório my-layer-code/php.

      Exemplo:

      {
        "require": {
          "aliyunfc/fc-php-sdk": "~1.2",
          "alibabacloud/fnf": "^1.7"
        }
      }
    2. Instale as dependências.

      composer install

    Verifique a estrutura de diretórios resultante:

    my-layer-code
     └─php
       ├──composer.json
       ├──composer.lock
       └──vendor
  4. Empacote as dependências a partir do diretório my-layer-code:

    zip -r my-layer-code.zip php

Criar uma camada personalizada

Criar uma camada personalizada no console do Function Compute

Pré-requisitos

Uma função já criada. Para mais informações, consulte Criar uma função.

Procedimento

  1. Para mais informações sobre como criar um pacote ZIP de camada, consulte Criar um pacote ZIP para uma camada.

  2. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Advanced Features > Layers.

  3. Na barra de navegação superior, selecione uma região. Na página Layers, clique em Create Layer.

  4. Na página Create Layer, especifique os parâmetros relevantes e clique em Create.

    Parâmetro

    Descrição

    Name

    Insira um nome para a camada que deseja criar.

    Description

    Insira uma descrição para identificar a camada.

    Compatible Runtime

    Selecione os runtimes compatíveis.

    Layer Upload Method

    Escolha um método de upload:

    • Upload Layer in ZIP Package: Selecione o arquivo ZIP da camada.

    • Upload Layer in Folder: Selecione a pasta que contém o arquivo ZIP da camada.

    • Upload Layer Using OSS: Especifique o Bucket Name e o Object Name do arquivo ZIP da camada no OSS.

    • Build Dependency Layer Online: Selecione um Build Environment e envie o package.json ou requirements.txt.

      Nota

      Apenas os runtimes Python e Node.js suportam builds online. Limite de upload: 500 MB, tempo limite de 15 minutos.

    O sistema gera a versão 1 da camada após a criação.

  5. Crie uma nova versão.

    Nota

    Não é possível modificar uma camada criada ou as versões de uma camada existente. Para atualizar as configurações de uma camada, crie uma nova camada ou uma nova versão. Se uma versão de camada referenciada for excluída, remova a referência antes de atualizar as configurações da camada.

    1. Na página Layers, clique em no nome da camada ou clique em Versions na coluna Actions.

    2. Na seção Versions, clique em Create Version.

    3. Selecione um runtime, envie o novo código da camada e clique em Create.

Criar uma camada personalizada usando o Serverless Devs

Pré-requisitos

Procedimento

  1. Para mais informações sobre como criar um pacote ZIP de camada, consulte Criar um pacote ZIP para uma camada.

  2. Crie uma camada:

    s cli fc layer publish --code ./my-layer-code --compatible-runtime java8,Java11,custom  --region cn-hangzhou --layer-name my-layer

    Descrição:

    • --code: o caminho do pacote de código.

    • --compatible-runtime: runtimes compatíveis para a camada.

    • --layer-name: o nome da camada.

    Uma mensagem de sucesso retorna o ARN da camada, composto por três partes separadas por #: ID da conta, nome da camada e versão da camada. Faça login no console do Function Compute para visualizar os detalhes da camada.dg-createlayer-success

  3. Crie uma nova versão para a camada:

    s cli fc layer publish --code ./my-layer-code --compatible-runtime java8,java11,custom  --region cn-hangzhou --layer-name my-layer
    Nota

    Não é possível modificar uma camada criada ou as versões de uma camada existente. Para atualizar as configurações de uma camada, crie uma nova camada ou uma nova versão. Se uma versão de camada referenciada for excluída, remova a referência antes de atualizar as configurações da camada.

Excluir camadas e versões de camada

Exclua camadas ou versões de camada não utilizadas. Camadas excluídas não podem ser visualizadas ou referenciadas nas configurações de funções, mas as funções que já as referenciam continuam em execução.

  1. Faça login no console do Function Compute.

  2. No painel de navegação à esquerda, escolha Advanced Features > Layers.

  3. Na barra de navegação superior, selecione uma região.

  4. Na página Layers, exclua uma camada ou uma versão de camada conforme suas necessidades de negócio.

    • Excluir uma camada

      Localize a camada e clique em Delete na coluna Actions. Marque a opção I want to delete all of the N versions at the layer e clique em Delete.

    • Excluir uma versão de camada

      Clique em no nome da camada. Na seção Versions, localize a versão e clique em Delete na coluna Actions. Na mensagem Confirm, clique em Delete.

Referências