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

Para funções padrão:

  1. O Lambda recebe um evento.

  2. O Lambda usa o runtime para preparar o evento em um formato que o código possa usar.

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

  4. Seu manipulador processa o evento usando o código que você escreveu.

Para funções duráveis:

  1. O Lambda recebe um evento.

  2. O runtime prepara o evento e o DurableContext

  3. Seu manipulador pode:

    • Processar etapas com pontos de verificação automáticos

    • Pausar a execução sem consumir recursos

    • Retomar a partir do último ponto de verificação com êxito

    • Manter o estado entre as etapas

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 que varia entre as funções padrão e duráveis:

Funções padrão (até 15 minutos):

  1. Inicialização: configuração do ambiente e carregamento de código

  2. Invocação: execução única do código da função

  3. Desligamento: limpeza do ambiente

Funções duráveis (até 1 ano):

  1. Inicialização: configuração de ambiente e estado durável

  2. Invocação: várias etapas com pontos de verificação automáticos

  3. Estados de espera: pausa a execução sem consumo de recursos

  4. Retomar: reiniciar a partir do último ponto de verificação

  5. Desligar: limpeza do estado durável

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. Para funções duráveis, ele também gerencia:

  • Persistência de estado automática entre etapas

  • Armazenamento e recuperação em pontos de verificação

  • Coordenação do estado de espera

  • Acompanhamento do andamento em execuções de longa duração