

# Noções básicas sobre o ambiente de execução das instâncias gerenciadas do Lambda
<a name="lambda-managed-instances-execution-environment"></a>

As instâncias gerenciadas do Lambda fornecem um modelo de implantação alternativo que executa seu código de função em instâncias do Amazon EC2 de propriedade do cliente, enquanto o Lambda gerencia os aspectos operacionais. O ambiente de execução das instâncias gerenciadas tem várias diferenças importantes em relação às funções do Lambda (padrão), principalmente na forma como ele lida com invocações simultâneas e gerencia os ciclos de vida do contêiner.

**Observação:** para obter informações sobre o ambiente de execução do Lambda (padrão), consulte Noções básicas sobre o ciclo de vida do ambiente de execução do Lambda.

## Ciclo de vida do ambiente de execução
<a name="lambda-managed-instances-execution-lifecycle"></a>

O ciclo de vida de um ambiente de execução de uma função das instâncias gerenciadas do Lambda difere do Lambda (padrão) de várias maneiras fundamentais:

### Fase de inicialização
<a name="lambda-managed-instances-init-phase"></a>

Durante a fase de inicialização, o Lambda executa as etapas a seguir:
+ Inicialização e registro de todas as extensões
+ Bootstrap do ponto de entrada do runtime. O runtime gera o número configurado de operadores de runtime (a implementação depende do runtime)
+ Execução do código de inicialização da função (código fora do manipulador)
+ Espere que pelo menos um operador de runtime sinalize que está pronto chamando `/runtime/invocation/next`

A fase de inicialização é considerada concluída quando as extensões são inicializadas e pelo menos um operador de runtime tiver chamado `/runtime/invocation/next`. A função está então pronta para processar as invocações.

**nota**  
Para as funções das instâncias gerenciadas do Lambda, a inicialização pode levar até 15 minutos. O tempo limite é de no máximo 130 segundos ou o tempo limite configurado da função (até 900 segundos).

### Fase de invocação
<a name="lambda-managed-instances-invoke-phase"></a>

A fase de invocação para funções das instâncias gerenciadas do Lambda tem várias características exclusivas:

**Operação contínua.** Ao contrário do Lambda (padrão), o ambiente de execução permanece continuamente ativo, processando as invocações à medida que elas chegam, sem congelar entre as invocações.

**Processamento paralelo.** Várias invocações podem ser executadas simultaneamente no mesmo ambiente de execução, cada uma gerenciada por um operador de runtime diferente.

**Tempos limite independentes.** O tempo limite configurado da função se aplica a cada invocação individual. Quando uma invocação expira, o Lambda marca essa invocação específica como com falha, mas não interrompe outras invocações em andamento nem encerra o ambiente de execução.

**Tratamento de contrapressão.** Se todos os operadores de runtime estiverem ocupados processando invocações, novas solicitações de invocação serão rejeitadas até que um operador fique disponível.

## Tratamento de erros e recuperação
<a name="lambda-managed-instances-error-handling"></a>

O tratamento de erros em ambientes de execução das funções de instâncias gerenciadas do Lambda difere do Lambda (padrão):

**Tempos limite de invocações.** Quando uma invocação individual expira, o Lambda retorna um erro de tempo limite para essa invocação. No entanto, as Instâncias Gerenciadas Lambda não impõem o tempo limite; seu código continuará em execução. Como desenvolvedor de funções, você é responsável por detectar e gerenciar o tempo limite. O objeto de contexto expõe o tempo restante para a invocação, com um valor zero ou negativo indicando um tempo limite. Outras invocações simultâneas no ambiente de execução continuam sendo processadas normalmente.

**Falhas do operador de runtime.** Se um processo de operador de runtime falhar, o ambiente de execução continuará funcionando com os demais operadores íntegros.

**Falhas de extensão.** Se um processo de extensão falhar durante a inicialização ou operação, todo o ambiente de execução será marcado como não íntegro e encerrado. O Lambda criará um novo ambiente de execução para substituí-lo.

**Sem redefinição/reparo.** Diferentemente do Lambda (padrão), as instâncias gerenciadas não tentam redefinir e reinicializar o ambiente de execução após erros. Em vez disso, os contêineres não íntegros são encerrados e substituídos por novos.