Runtimes com suporte para funções duráveis - AWS Lambda

Runtimes com suporte para funções duráveis

As funções duráveis estão disponíveis para runtimes do Node.js e do Python. É possível criar funções duráveis usando runtimes gerenciados no console do Lambda ou implantá-las usando imagens de contêiner para obter flexibilidade adicional na versão do runtime.

Runtimes gerenciados pelo Lambda

Os runtimes gerenciados a seguir oferecem suporte a funções duráveis quando você cria funções no console do Lambda ou usa a AWS CLI com o parâmetro --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'. Para obter informações completas sobre os runtimes do Lambda, consulte Runtimes do Lambda.

Linguagem Runtime
Node.js nodejs22.x
Node.js nodejs24.x
Python python3.13
Python python3.14
nota

Os runtimes do Lambda incluem o SDK de execução durável para testes e desenvolvimento. No entanto, recomendamos incluir o SDK em seu pacote de implantação para produção. Isso garante a consistência da versão e evita possíveis atualizações de runtimes que possam afetar o comportamento da sua função.

Node.js

Instale o SDK no seu projeto de Node.js:

npm install @aws/durable-execution-sdk-js

O SDK oferece suporte a JavaScript e a TypeScript. Para projetos de TypeScript, o SDK inclui definições de tipo.

Python

Instale o SDK no seu projeto de Python:

pip install aws-durable-execution-sdk-python

O SDK do Python usa métodos síncronos e não exige async/await.

Imagens de contêiner

É possível usar funções duráveis com imagens de contêiner para oferecer suporte a versões adicionais de runtimes ou configurações personalizadas de runtimes. As imagens de contêiner permitem que você use versões de runtimes não disponíveis como runtimes gerenciados ou personalize seu ambiente de runtime.

Para criar uma função durável usando uma imagem de contêiner:

  1. Crie um Dockerfile baseado em uma imagem básica do Lambda

  2. Instale o SDK de execução durável em seu contêiner

  3. Crie e envie a imagem do contêiner para o Amazon Elastic Container Registry

  4. Crie a função do Lambda a partir da imagem do contêiner com a execução durável habilitada

Exemplo de contêiner de Python

Crie um Dockerfile para Python 3.11:

FROM public.ecr.aws/lambda/python:3.11 # Copy requirements file COPY requirements.txt ${LAMBDA_TASK_ROOT}/ # Install dependencies including durable SDK RUN pip install -r requirements.txt # Copy function code COPY lambda_function.py ${LAMBDA_TASK_ROOT}/ # Set the handler CMD [ "lambda_function.handler" ]

Crie um arquivo requirements.txt:

aws-durable-execution-sdk-python

Crie e envie a imagem:

# Build the image docker build -t my-durable-function . # Tag for ECR docker tag my-durable-function:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest # Push to ECR docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest

Crie a função com a execução durável habilitada:

aws lambda create-function \ --function-name myDurableFunction \ --package-type Image \ --code ImageUri=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-durable-function:latest \ --role arn:aws:iam::123456789012:role/lambda-execution-role \ --durable-config '{"ExecutionTimeout": 10, "RetentionPeriodInDays":1}'

Para obter mais informações sobre como usar imagens de contêiner com o Lambda, consulte Criação de imagens de contêiner do Lambda no Guia do desenvolvedor do Lambda.

Considerações sobre runtime

Gerenciamento de versão do SDK: inclua o SDK de execução durável em seu pacote de implantação ou imagem de contêiner. Isso garantirá que sua função use uma versão específica do SDK e não seja afetada pelas atualizações de runtimes. Fixe as versões do SDK no seu package.json ou requirements.txt para controlar quando você fizer o upgrade.

Atualizações de runtimes: AWS atualiza os runtimes gerenciados para incluir patches de segurança e correções de erros. Essas atualizações podem incluir novas versões do SDK. Para evitar comportamentos inesperados, inclua o SDK em seu pacote de implantação e teste minuciosamente antes de implantá-lo na produção.

Tamanho da imagem do contêiner: as imagens de contêiner têm um tamanho máximo não compactado de 10 GB. O SDK de execução durável adiciona um tamanho mínimo à sua imagem. Otimize seu contêiner usando compilações de vários estágios e removendo dependências desnecessárias.

Performance de inicialização a frio: as imagens de contêiner podem ter tempos de inicialização a frio mais longos do que os runtimes gerenciados. O SDK de execução durável tem um impacto mínimo na performance da inicialização a frio. Use a simultaneidade provisionada se a latência da inicialização a frio for essencial para sua aplicação.