Executar código com o Lambda - AWS Lambda

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 compatível. O modelo de programação inclui o runtime e o manipulador.

  1. O Lambda recebe um evento.

  2. O Lambda usa o runtime (como Python ou Java) para preparar o evento em um formato que o código possa usar.

  3. O runtime envia o evento formatado para o manipulador.

  4. O manipulador processa o evento usando o código que você escreveu na função do Lambda.

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, é um espaço computacional seguro e isolado criado especificamente para a função. Cada ambiente segue um ciclo de vida de três fases.

  1. Inicialização: o Lambda cria o ambiente e prepara tudo para executar a função. Isso inclui configurar o runtime escolhido, carregar o código e executar qualquer código de inicialização que você escreveu.

  2. Invocação: quando os eventos chegam, o Lambda usa esse ambiente para executar a função. O ambiente pode processar muitos eventos ao longo do tempo, um após o outro. À medida que mais eventos chegam, o Lambda cria ambientes adicionais para lidar com o aumento de demanda. Quando a demanda diminuiu, o Lambda interrompe os ambientes que não são mais necessários.

  3. Desligamento: no final, o Lambda encerra os ambientes. Antes de fazer isso, ele permite que a função limpe qualquer tarefa pendente.

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. Ele mantém recursos, como conexões de banco de dados entre invocações, para que a função possa reutilizá-los. Ele oferece atributos como simultaneidade provisionada, com os quais o Lambda prepara ambientes antecipadamente para melhorar a performance.