Criar e excluir camadas no Lambda - AWS Lambda

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). 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)
  1. Abra a página Layers (Camadas) do console do Lambda.

  2. Escolha Criar camada.

  3. Em Configuração de camada, insira um nome para sua camada em Nome.

  4. (Opcional) Em Descrição, insira uma descrição para a sua camada.

  5. 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, escolhaPara 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.

  6. (Opcional) Em Arquiteturas compatíveis, escolha um valor ou ambos os valores. Para ter mais informações, consulte Selecionar e configurar a arquitetura de um conjunto de instruções para a função do Lambda.

  7. (Opcional) Para Runtimes compatíveis, escolha os runtimes com os quais sua camada é compatível.

  8. (Opcional) Em License (Licença), insira todas as informações necessárias sobre licença.

  9. Escolha Criar.

Como alternativa, você também pode usar a PublishLayerVersionAPI para criar uma camada. Por exemplo, você pode usar o comando publish-layer-version da AWS Command Line Interface (CLI) com nome, descrição e arquivo .zip especificados. As informações da licença, os runtimes compatíveis e os parâmetros de arquitetura compatíveis são opcionais.

aws lambda publish-layer-version --layer-name my-layer \ --description "My layer" \ --license-info "MIT" \ --zip-file fileb://layer.zip \ --compatible-runtimes python3.10 python3.11 \ --compatible-architectures "arm64" "x86_64"

Você deve ver saída semelhante a:

{ "Content": { "Location": "https://awslambda-us-east-2-layers.s3.us-east-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...", "CodeSha256": "tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=", "CodeSize": 169 }, "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Description": "My layer", "CreatedDate": "2023-11-14T23:03:52.894+0000", "Version": 1, "CompatibleArchitectures": [ "arm64", "x86_64" ], "LicenseInfo": "MIT", "CompatibleRuntimes": [ "python3.10", "python3.11" ] }

Toda vez que você chama publish-layer-version, você cria uma nova versão dessa camada.

Excluir uma versão da camada

Para excluir uma versão de camada, use a DeleteLayerVersionAPI. Por exemplo, você pode usar o comando delete-layer-version da CLI com o nome da camada e a versão da camada especificados.

aws lambda delete-layer-version --layer-name my-layer --version-number 1

Ao excluir uma versão de camada, não é mais possível configurar uma função do Lambda para usá-la. No entanto, todas as funções que já usem a versão continua a ter acesso a ela. Além disso, o Lambda nunca reutiliza números de versão para o nome de uma camada.