top of page

Utilizando AWS Lambda Layers para Gerenciamento Eficiente de Bibliotecas Python

AWS Lambda Layers para Python


Neste artigo, abordaremos uma prática avançada no uso de funções AWS Lambda: o emprego de Layers para o gerenciamento eficaz de bibliotecas Python, como a selenium e pandas.


Parafraseando Layers


Um Layer em AWS Lambda é, essencialmente, um pacote de artefatos que podem ser utilizados em várias funções Lambda simultaneamente. Ele serve como um repositório centralizado para gerenciar e manter bibliotecas, eliminando a necessidade de incluí-las manualmente em cada deploy de função.


Procedimento


Passo 1: Instalação das Bibliotecas


No terminal, execute o seguinte comando para instalar as bibliotecas necessárias em um diretório específico:

pip3.11 install -t python/lib/python3.11/site-packages selenium==4.13.0 pandas==1.3.3

Nota: Substitua python3.11 e versão das libs de acordo com as versões que deseja utilizar.


Passo 2: Criação do Arquivo Zip


Compacte o diretório contendo as bibliotecas em um arquivo ZIP.

zip -r python.zip python/


Passo 3: Transferência para o S3


Transfira o arquivo ZIP para um bucket no serviço S3 da AWS.


aws s3 cp python.zip s3://{meu_bucket}/lambda/

Passo 4: Publicação do Layer


Publique o Layer no serviço Lambda da AWS utilizando o seguinte comando:


aws lambda publish-layer-version \
  --layer-name pythonlibs \
  --description "Bibliotecas Python para Lambda" \
  --content S3Bucket={meu_bucket},S3Key=lambda/python.zip \
  --compatible-runtimes python3.11 \
  --compatible-architectures x86_64

Implementação na Função Lambda


Integre o Layer à sua função Lambda da seguinte maneira:



aws lambda create-function \
  --function-name {nome_da_funcao} \
  --runtime python3.11 \
  --architectures x86_64 \
  --handler {nome_seu_script_python}.{nome_da_sua_funcao_do script} \
  --role {seu_role_arn} \
  --layers "arn:aws:lambda:{regiao}:{seu_id}:layer:pythonlibs:1" \
  --zip-file fileb://{seu_script_python}.zip

Zip o seu script py para enviar, e rode esse comando no diretorio deste zip.


O parâmetro --layers é usado quando você está configurando ou atualizando uma função AWS Lambda para especificar uma ou mais camadas de biblioteca que você deseja associar à sua função. O valor deste parâmetro é o Amazon Resource Name (ARN) da camada que você deseja adicionar. Em casos em que você quer adicionar múltiplas camadas, você pode fornecer vários ARNs separados por vírgulas.

Por exemplo, o parâmetro --layers "arn:aws:lambda:{regiao}:{seu_id}:layer:pythonlibs:1" indica que você está associando à sua função Lambda uma camada chamada pythonlibs, versão 1, que foi criada na sua conta AWS ({seu_id}) na região especificada ({regiao}).

Se você tiver criado várias camadas e quiser adicioná-las todas à mesma função Lambda, pode fazer isso passando os ARNs separados por vírgulas


Conclusão

Utilizar AWS Lambda Layers é uma prática recomendada para efetuar um gerenciamento mais eficaz de bibliotecas em suas funções Lambda, tornando a manutenção e atualização desses recursos mais prática e menos susceptível a erros.


Sobre o Autor


Wellington Faria

Sou formado em Engenharia da Computação e atualmente atuo como Programador Python e Engenheiro de Dados. Com um interesse particular em tecnologias voltadas para dados, tenho planos de fundar minha própria empresa nessa área. Quando não estou imerso no código, gosto de dedicar meu tempo a plantas, cachorros e peixes.

Para mais conteúdos como este, siga-me nas redes sociais ou entre em contato diretamente comigo.

bottom of page