Adicionar camadas às funções - AWS Lambda

Adicionar camadas às funções

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 adicionar uma camada a uma função do 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.

Antes de configurar uma função do Lambda para usar uma camada, é necessário:

É possível adicionar até cinco camadas a uma função do Lambda. O tamanho total descompactado da função e de todas as camadas não pode exceder a cota de tamanho do pacote de implantação descompactado de 250 MB. Para ter mais informações, consulte Cotas Lambda.

Suas funções podem continuar usando qualquer versão de camada que você já tenha adicionado, mesmo após a exclusão dessa versão ou após a revogação de sua permissão para acessar a camada. No entanto, você não pode criar uma nova função que use uma versão de camada excluída.

nota

Certifique-se de que as camadas adicionadas a uma função sejam compatíveis com a arquitetura do runtime e do conjunto de instruções da função.

Para adicionar tags a uma função (console)
  1. Abra a página Funções do console do Lambda.

  2. Escolha a função a ser configurada.

  3. Em Camadas, selecione Adicionar uma  camada

  4. Em Escolher uma camada, escolha uma origem da camada:

    1. Para as origens da camada Camadas da AWS ou Camadas personalizadas, escolha uma camada no menu suspenso. Em Versão, escolha uma versão da camada no menu suspenso.

    2. Para a origem da camada Especificar um ARN, insira um ARN na caixa de texto e escolha Verificar. Em seguida, escolha Adicionar.

A ordem na qual você adiciona as camadas é a ordem na qual o Lambda mescla posteriormente o conteúdo da camada no ambiente de execução. É possível alterar a ordem de mesclagem das camadas usando o console.

Para atualizar a ordem de mesclagem das camadas para sua função (console)
  1. Abra a página Funções do console do Lambda.

  2. Escolha a função a ser configurada.

  3. Em Layers (Camadas), escolha Edit (Editar)

  4. Escolha uma das camadas.

  5. Escolha Merge earlier (Mesclar antes) ou Merge later (Mesclar depois) para ajustar a ordem das camadas.

  6. Escolha Salvar.

As camadas contêm versionamento. O conteúdo de cada versão da camada é imutável. O proprietário de uma camada pode liberar novas versões dela para fornecer conteúdo atualizado. É possível usar o console para atualizar a versão da camada anexada às suas funções.

Para atualizar versões da camada para sua função (console)
  1. Abra a página Camadas do console do Lambda.

  2. Escolha a camada para a qual você deseja atualizar a versão.

  3. Escolha a guia Funções usando esta versão.

  4. Escolha as funções que você deseja modificar e, em seguida, escolha Editar.

  5. Em Versão da camada, escolha a versão da camada a ser alterada.

  6. Escolha Atualizar funções.

Você não pode atualizar as versões da camada de funções nas contas da AWS.

Acessar o conteúdo da camada da sua função

Quando a função do Lambda inclui camadas, o Lambda extrai o conteúdo da camada para o diretório /opt no ambiente de execução da função. O Lambda extrai as camadas na ordem (baixa para alta) listada pela função. O Lambda mescla pastas com o mesmo nome. Se o mesmo arquivo aparecer em várias camadas, a função utiliza a versão na última camada extraída.

Cada runtime do Lambda adiciona pastas do diretório /opt específicas à variável PATH. Seu código de função pode acessar o conteúdo da camada sem precisar especificar o caminho. Para obter mais informações sobre as configurações de caminhos no ambiente de execução do Lambda, consulte Variáveis de ambiente com runtime definido.

Consulte Caminhos da camada para cada runtime do Lambda para saber onde incluir suas bibliotecas ao criar uma camada.

Se você estiver usando um runtime Node.js ou Python, poderá usar o editor de código integrado no console do Lambda. Você deve ser capaz de importar qualquer biblioteca que tenha adicionado como uma camada para a função atual.

Encontrar informações da camada

Para encontrar camadas em sua conta que sejam compatíveis com o tempo de execução da sua função, use a ListLayersAPI. Por exemplo, é possível usar o seguinte comando list-layers da AWS Command Line Interface (CLI):

aws lambda list-layers --compatible-runtime python3.9

Você deve ver saída semelhante a:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.9", "python3.10", "python3.11", ] } } ] }

Para listar todas as camadas da sua conta, omitia a opção --compatible-runtime. Os detalhes da resposta mostram a versão mais recente de cada camada.

Você também pode obter a versão mais recente de uma camada usando a ListLayerVersionsAPI. Por exemplo, é possível usar o seguinte comando list-layer-versions da CLI:

aws lambda list-layer-versions --layer-name my-layer

Você deve ver saída semelhante a:

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }