Executar código com o Lambda
Quando você escreve uma função do Lambda, está criando um código que será executado em um ambiente exclusivo com tecnologia sem servidor. A compreensão de como o Lambda executa o código envolve dois aspectos principais: o modelo de programação que define como o código interage com o Lambda e o ciclo de vida do ambiente de execução que determina como o Lambda gerencia o ambiente de runtime do código.
O modelo de programação do Lambda
O modelo de programação funciona como um conjunto comum de regras sobre como o Lambda trabalha com o código, esteja você escrevendo em Python, em Java ou em qualquer outra linguagem com suporte. O modelo de programação inclui o runtime e o manipulador.
Para funções padrão:
-
O Lambda recebe um evento.
-
O Lambda usa o runtime para preparar o evento em um formato que o código possa usar.
-
O runtime envia o evento formatado para o manipulador.
-
Seu manipulador processa o evento usando o código que você escreveu.
Essencial para esse modelo é o manipulador, ao qual o Lambda envia os eventos para serem processados pelo código. Pense nele como o ponto de entrada para o código. Quando o Lambda recebe um evento, ele passa esse evento e algumas informações de contexto para o manipulador. O manipulador então executa o código para processar esses eventos; por exemplo, ele pode ler um arquivo quando ele é carregado no Amazon S3, analisar uma imagem ou atualizar um banco de dados. Quando o código termina de processar um evento, o manipulador está pronto para processar o próximo.
O modelo de execução do Lambda
Embora o modelo de programação defina como o Lambda interage com o código, o ambiente de execução é onde o Lambda realmente executa a função, pois é um espaço computacional seguro e isolado criado especificamente para a função.
Cada ambiente segue um ciclo de vida:
-
Inicialização: configuração do ambiente e carregamento de código
-
Invocação: execução única do código da função
-
Desligamento: limpeza do ambiente
Esse ambiente lida com aspectos importantes da execução da função. Ele fornece à função memória e um diretório /tmp para armazenamento temporário.