Lambda é um serviço Serverless oferecido pela AWS, com ele podemos executar diferentes scripts a qualquer momento sem a necessidade de termos um servidor alocado 24/7, o que diminui muito os custos.
Algumas bibliotecas, como, por exemplo, o requests
do Python, requer uma instalação via Pip para funcionar, algo que não conseguimos executar no painel das Lambdas. Podemos fazer a instalação localmente juntamente com nossos scripts e fazer o upload via .zip, porém, dependendo do tamanho do Bundle, não vamos conseguir editar e testar o código pelo painel.
Outra opção é utilizar camadas, que basicamente é subirmos os pacotes que desejamos utilizar sem a necessidade de importar o .zip para o projeto principal das Lambdas. Essa é a opção que vamos seguir aqui.
Uma observação antes de iniciarmos nosso artigo: Vamos fazer os exemplos utilizando o Python pela praticidade, mas a funcionalidade é a mesma para outras linguagens, como Node JS, por exemplo.
Com o Python instalado, crie uma pasta em um diretório seguro, em seguida, abra o terminal dentro dessa pasta e rode o comando abaixo.
pip install requests -t .
O comando acima vai baixar o pacote de arquivos requests dentro da pasta atual, contendo tudo o que a gente precisa. Agora compacte a pasta que você acabou de criar no formato .zip.
Acesse o painel da Lambda na AWS, em seguida, clique na opção Camadas no menu lateral esquerdo. siga os passos abaixo para criar a camada:
Agora que já temos nossa camada criada, vamos criar uma nova função Lambda, para isso, siga os passos abaixo.
Estamos na reta final do nosso artigo, agora só nos resta associar a Camada criada anteriormente a nossa função Lambda, para isso, na página da sua nova função Lambda, role até o final da página e clique no botão Adicionar uma nova Camada.
Agora as suas bibliotecas já estão disponíveis através das Camadas. Vamos rodar o script abaixo para exemplificar nosso teste.
import requests
def lambda_handler(event, context):
x = requests.get('https://w3schools.com/python/demopage.htm')
print(x.text)
Caso tenha ficado com alguma dúvida, confira nossa videoaula através do player abaixo.