Criar e excluir camadas no Lambda
Uma camada do Lambda é um arquivo .zip que pode conter código ou dados adicionais. As camadas geralmente contêm dependências de biblioteca, um runtime personalizado ou arquivos de configuração.
Esta seção explica como criar e excluir camadas no Lambda. Para obter mais informações conceituais sobre camadas e por que você pode considerar usá-las, consulte Gerenciar dependências do Lambda com camadas.
Depois de ter empacotado seu conteúdo de camada, a próxima etapa é criar a camada no Lambda. Esta seção demonstra como criar e excluir camadas usando somente o console do Lambda ou a API do Lambda. Para criar uma camada usando o AWS CloudFormation, consulte Usar o AWS CloudFormation com camadas. Para criar uma camada usando o AWS Serverless Application Model (AWS SAM), consulte Usar o AWS SAM com camadas.
Criar uma camada
Para criar uma camada, você pode fazer o upload do arquivo .zip em sua máquina local ou no Amazon Simple Storage Service (Amazon S3). Ao fazer o upload do Amazon S3, você pode escolher se o Lambda copia o código para o armazenamento gerenciado pelo Lambda ou faz referência a ele diretamente do bucket do S3. Para obter mais informações, consulte Armazenamento de código do S3 autogerenciado.
O Lambda extrai o conteúdo da camada para o diretório /opt ao configurar o ambiente de execução para a função.
As camadas podem ter uma ou mais versões da camada. Quando você cria uma camada, o Lambda define a versão da camada para a versão 1. Você pode alterar as permissões em uma versão da camada existente a qualquer momento. No entanto, para atualizar o código ou fazer outras alterações na configuração, é preciso criar uma nova versão da camada.
Para criar uma camada (console)
-
Abra a página Layers
(Camadas) do console do Lambda. -
Escolha Criar camada.
-
Em Configuração de camada, insira um nome para sua camada em Nome.
-
(Opcional) Em Descrição, insira uma descrição para a sua camada.
-
Para fazer upload do código da camada, siga um destes procedimentos:
-
Para carregar um arquivo.zip do seu computador, escolha Upoad a .zip file (Fazer upload de um arquivo .zip). Selecione Upload (Fazer upload) para escolher seu arquivo .zip local.
-
Para fazer upload de um arquivo do Amazon S3, escolha Fazer upload de um arquivo do Amazon S3. Então, em Amazon S3 link URL (URL do link do Amazon S3), insira um link para o arquivo.
-
-
(Opcional) Em Arquiteturas compatíveis, escolha um valor ou ambos os valores. Para obter mais informações, consulte Selecionar e configurar a arquitetura de um conjunto de instruções para a função do Lambda.
-
(Opcional) Para Runtimes compatíveis, escolha os runtimes com os quais sua camada é compatível.
-
(Opcional) Em License (Licença), insira todas as informações necessárias sobre licença.
-
Escolha Criar.
Como alternativa, você pode executar o comando publish-layer-versionS3ObjectStorageMode=REFERENCE para usar o armazenamento de código do S3 autogerenciado ou não o inclua (o padrão definido é COPY) para usar o armazenamento gerenciado pelo Lambda. Exemplo:
aws lambda publish-layer-version --layer-namemy-layer--zip-file fileb://layer.zip --compatible-runtimespython3.14
Toda vez que você executa publish-layer-version, o Lambda cria uma nova versão da camada.
Excluir uma versão da camada
Para excluir uma versão da camada, use a operação de API DeleteLayerVersion. Por exemplo, execute o comando da AWS CLI delete-layer-version
aws lambda delete-layer-version --layer-name my-layer --version-number 1
Ao excluir uma versão de camada, você não pode mais configurar novas funções para usá-la. No entanto, todas as funções que já fizerem referência à versão da camada excluída continuam a ser executadas com o conteúdo dessa camada. Além disso, o Lambda nunca reutiliza números de versão para definir o nome de uma camada.
Impacto da exclusão de camadas na cota de armazenamento
O impacto da exclusão de uma versão da camada na cota de armazenamento depende do modo de armazenamento usado pela camada e pelas funções que fazem referência a ela.
- A camada usa o armazenamento gerenciado pelo Lambda (COPY)
-
Quando você exclui uma versão de camada que usa o armazenamento gerenciado pelo Lambda, o código da camada é removido da cota de armazenamento gerenciado pelo Lambda da sua conta. No entanto, todas as funções que ainda fizerem referência à versão da camada excluída continuam tendo acesso ao conteúdo da camada. O conteúdo da camada conta para a cota de tamanho do pacote de implantação da função (250 MB descompactado), mas não conta mais para a cota de armazenamento gerenciada pelo Lambda na conta.
- A camada usa o armazenamento do S3 autogerenciado (REFERÊNCIA)
-
As camadas que usam o armazenamento de código do S3 autogerenciado não consomem o armazenamento gerenciado pelo Lambda e, portanto, excluí-las não afeta sua cota de armazenamento gerenciado pelo Lambda. As funções que fizerem referência a uma versão da camada autogerenciada excluída anteriormente continuarão sendo executadas normalmente. No entanto, se o objeto de origem do bucket do S3 também for excluído ou o acesso a ele por parte do Lambda for revogado, você não poderá mais atualizar a configuração da função com essa camada.
nota
A exclusão de uma versão da camada nunca desativa as funções que fazem referência a ela. As funções permanecem Active, independentemente de a camada usar armazenamento do S3 gerenciado pelo Lambda ou autogerenciado. O estado Inactive só se aplica quando o Lambda perde o acesso ao próprio código-fonte da função armazenado em um bucket do S3 autogerenciado.