O blog da AWS
Atualizando runtimes de funções Lambda em escala com AWS Transform custom
Por Brian Krygsman, Arquiteto de Soluções Sênior na Amazon Web Services e Jonathan Tuliani, Gerente de Produto Principal do AWS Lambda.
Quando você cria uma função AWS Lambda, você escolhe o runtime que o Lambda usará para executar seu código. Isso inclui a versão base da linguagem e bibliotecas de suporte. Os runtimes do Lambda seguem um cronograma de descontinuação publicado. Ou seja, você deve atualizar periodicamente o runtime da sua função.
Executar em um runtime descontinuado significa exposição potencial à segurança, perda do AWS Support e desafios de conformidade. Para equipes que gerenciam dezenas de funções, esta é uma tarefa de manutenção gerenciável. Para equipes que gerenciam centenas ou milhares, torna-se um esforço de engenharia significativo que compete com o trabalho de recursos.
Você pode modernizar seu código e configurações com AWS Transform custom, um serviço de IA Agêntica desenvolvido especificamente para modernização de código. Ele se encaixa em cada estágio de uma atualização de runtime: identificando riscos, confirmando cobertura de testes, transformação de código e validação. O mesmo fluxo de trabalho escala de uma única função para uma organização inteira. Você pode usar transformações fornecidas pela AWS ou criar as suas próprias, para conformidade ou compatibilidade. Você pode fornecer feedback para aplicar seus padrões. Você é cobrado apenas pelo trabalho ativo do agente durante operações do lado do servidor, não pelo tempo ocioso do usuário ou processamento do lado do cliente.
Esta publicação aborda dois públicos. Se você trabalha em uma equipe de aplicação, você aprenderá como usar o AWS Transform custom para atualizar suas funções com confiança. Se você faz parte de uma equipe de plataforma centralizada, você verá como orquestrar campanhas de atualização do Lambda em escala empresarial.
O desafio da atualização
Python e Node.js são dois dos runtimes Lambda mais amplamente usados, e ambos têm importantes cronogramas de descontinuação recentes ou futuros.
| Runtime | Data de descontinuação |
| Node.js 20 | 30 de abril de 2026 |
| Node.js 22 | 30 de abril de 2027 |
| Python 3.9 | 15 de dezembro de 2025 |
| Python 3.10 | 31 de outubro de 2026 |
Às vezes, uma atualização de runtime requer alterar a configuração das suas funções no seu template de infraestrutura como código ou no console do Lambda. Outras vezes, você também precisa atualizar dependências ou até fazer alterações no código.
Por exemplo, no Node.js 24 a AWS removeu o suporte para manipuladores de função baseados em callback, em favor do padrão mais moderno async/await que o Lambda suporta desde o Node.js 8. Funções usando o padrão antigo devem ser refatoradas. Esta é uma mudança comportamental que afeta cada manipulador baseado em callback na base de código.
Antes:
Depois:
Aplicar esse tipo de transformação em várias funções Lambda costumava exigir alterações manuais no código. Com o AWS Transform custom, você pode automatizar a atualização para liberar a capacidade e o foco da sua equipe para trabalho diferenciado.
AWS Transform custom para equipes de aplicação
Assumimos que você já tem o AWS Transform custom configurado. Para orientação, consulte a documentação do AWS Transform custom. Você também pode usar o AWS Transform custom através do Kiro Power.
Pré-requisitos
Certifique-se de ter o seguinte configurado localmente:
- CLI do AWS Transform custom instalado e configurado.
- AWS Command Line Interface (AWS CLI) configurada com credenciais. Idealmente credenciais de curto prazo emitidas através do AWS IAM Identity Center com permissões de privilégio mínimo.
- Base de código existente incluindo uma ou mais funções Lambda.
- Recomendado: cobertura de testes existente para validação.
- Verifique AWS Capabilities by Region para Regiões AWS suportadas.
Execute uma transformação de documentação
Para sua primeira transformação, você pode executar a transformação fornecida pela AWS “AWS/comprehensive-codebase-analysis” em uma função ou base de código representativa. Isso produz uma visão priorizada do esforço de atualização antes que uma única linha de código seja alterada, ajudando você a planejar sua atualização. Funções melhor documentadas são mais fáceis de avaliar, manter e transferir. Executar uma transformação de documentação é um primeiro passo de baixo risco: não altera o comportamento da função e permite que você construa familiaridade com o fluxo de trabalho do AWS Transform custom.
Quando você executa a transformação de análise de código, adicione additionalPlanContext para informar ao AWS Transform custom que você planeja atualizar seus runtimes de função Lambda. Ele pode sinalizar funções com maior probabilidade de exigir alterações no código. Por exemplo, funções com manipuladores baseados em callback, código async/callback complexo ou baixa cobertura de testes.
A figura a seguir é uma captura de tela da execução do comando anterior em uma base de código de exemplo.

Planejamento de validação
Antes de uma atualização, você deve verificar a correção. Isso fornece a confiança de que você não introduziu novos problemas ao atualizar. A cobertura de testes de testes unitários e de integração ajuda na verificação. Um conjunto de testes aprovado pode aplicar o contrato comportamental para o código transformado e ajudar a prevenir problemas.
Ferramentas de observabilidade como métricas e alarmes podem ajudá-lo a validar suas alterações depois que elas foram implantadas. Elas podem ajudá-lo a detectar quando quebras acontecem e são críticas para encontrar a causa subjacente.
Se você não estiver confortável com sua cobertura de testes ou monitoramento, você pode usar agentes de IA para ajudar. Você pode criar uma definição de transformação personalizada no Transform custom para adicionar ou melhorar seus testes ou adicionar alarmes ao seu template de infraestrutura como código (IaC). Outra opção é usar Kiro ou outros agentes para gerar testes a partir de especificações de função, cobrindo entradas, saídas e caminhos de erro esperados.
Transformar
Agora que você usou a transformação de documentação para se familiarizar com a ferramenta e confirmou que tem uma maneira de validar sua atualização, você pode usar o AWS Transform custom para atualizar suas funções para um novo runtime.
Para aplicar a transformação, use a CLI do AWS Transform custom ou Kiro Power. O comando de exemplo abaixo executa a transformação “AWS/lambda-nodejs-runtime-upgrade” no código do diretório atual. Você pode usar opções adicionais para confiar automaticamente em todas as ferramentas e executar de forma não interativa.
O Transform custom segue as instruções na definição de transformação e contexto de plano adicional que você especifica. Você pode dizer para ele se concentrar em uma função Lambda específica no seu repositório de código ou atualizar todas as funções que encontrar. Ele identifica manipuladores baseados em callback e os refatora para async/await. Ele lida com casos extremos incluindo callbackWaitsForEmptyEventLoop e padrões mistos async/callback.
A análise de dependências sinaliza pacotes com incompatibilidades conhecidas com o Node.js 24 e os substitui. As atualizações de configuração alteram o runtime do Lambda de nodejs22.x para nodejs24.x. O AWS Transform custom se auto-depura em erros de compilação ou teste e confirma alterações no git incrementalmente em um branch de transformação separado. É possível compartilhar feedback ao longo do caminho, que é capturado como Itens de Conhecimento que podem ser aplicados a transformações futuras.
As figuras a seguir são capturas de tela da execução do comando anterior em uma base de código de exemplo.


Validar
O AWS Transform custom valida critérios de saída definidos antes de marcar a transformação como completa.
Os critérios de saída podem incluir:
- Todos os manipuladores executam sem erros no Node.js 24.
- Todos os testes passam, incluindo testes de comportamento de callback gerados.
- Todas as dependências confirmadas compatíveis com Node.js 24.
- Configuração de runtime atualizada para
nodejs24.x. - Requisitos adicionais adicionados com
additionalPlanContext.
O código recém-transformado permanece no branch de transformação até que você esteja pronto para mesclar e implantar. Você pode revisar logs do processo de transformação capturados pelo Transform. Além disso, é possível executar validação adicional no novo código, incluindo verificações de segurança ou conjuntos de testes mais complexos como testes de desempenho ou penetração. Como as alterações estão em um branch git separado, você pode seguir seus processos padrão de revisão de código, testes e implantação. Para segurança extra, você pode implantar usando mudança de tráfego do Lambda com Versões e Aliases, que você pode usar para reverter.
AWS Transform custom para equipes de plataforma
O fluxo de trabalho anterior funciona bem para equipes de aplicação gerenciando dezenas ou centenas de funções em alguns repositórios. Mas e se você for uma equipe de plataforma coordenando atualizações em milhares de funções em várias contas AWS?
Nesse caso, você deve orquestrar atualizações entre equipes e repositórios. Em alguns casos, você pode aplicar as atualizações você mesmo. Em outras organizações, você se concentra na coordenação e mantém a propriedade das atualizações distribuída. Em ambas as abordagens você precisa de visibilidade da amplitude do desafio e ferramentas para monitorar o progresso. Campanhas do Transform custom podem ajudar.
Iniciando e rastreando uma campanha de atualização
Equipes de plataforma criam campanhas através da aplicação web do AWS Transform custom. Faça login na aplicação web, crie um workspace e descreva seu objetivo. Por exemplo, “Quero atualizar todas as funções Lambda do Node.js 22 para Node.js 24.” O AWS Transform custom exibe definições de transformação correspondentes e gera uma campanha com um ID de campanha exclusivo e comando CLI. Nota: o comando inclui opções --trust-all-tools e --non-interactive switches, significando que ele será executado sem prompts de ferramentas ou assistência do usuário.
Você pode identificar funções candidatas em sua organização com AWS Trusted Advisor, a AWS CLI, Amazon CloudWatch, ou AWS Config. Para distribuir a responsabilidade de atualização, mapeie as funções para proprietários usando Tags ou metadados de implantação no AWS CloudTrail ou seu pipeline de integração e entrega contínua (CI/CD). Em seguida, compartilhe o comando da campanha com eles.
Execute o comando em cada repositório de destino. Quando o comando é executado, ele registra automaticamente o repositório na campanha. Em seguida, inicia a atualização com base na configuração que a equipe de plataforma escolheu ao criar a campanha.
O painel da aplicação web do AWS Transform rastreia o progresso da campanha rapidamente. Ele mostra o total de repositórios registrados na campanha e quantos estão concluídos, em andamento ou não iniciados. Ele também relata taxas de sucesso e falha junto com resultados de transformação e resumos de validação.
As figuras a seguir mostram exemplos de visualizações do painel.



Escalando com infraestrutura em nuvem
A AWS também fornece infraestrutura Open Source que pode automatizar a execução de transformação paralela usando AWS Batch e AWS Fargate. Esta solução move o processamento para a nuvem das máquinas de desenvolvedores individuais para ajudá-lo a se mover mais rapidamente, e inclui:
- API REST: envie transformações únicas ou lotes de milhares.
- Computação Serverless: AWS Batch com Fargate executa trabalhos de transformação em paralelo.
- Gerenciamento automático de credenciais: credenciais do AWS Identity and Access Management (IAM) se atualizam automaticamente, evitando chaves de acesso de longa duração.
- Container multi-linguagem: container pré-construído suportando Java, Python e Node.js com ferramentas de compilação incluídas.
A configuração padrão suporta até 128 trabalhos de transformação simultâneos, com enfileiramento automático e gerenciamento de recursos. Para orientação detalhada de implementação, informações de custo e código, consulte Construindo uma solução escalável de modernização de código com AWS Transform custom.
Nota: AWS Batch e Fargate incorrem em cobranças adicionais além do AWS Transform custom. Consulte o README para detalhes de custo.
Limpeza
O AWS Transform custom cobra pelo trabalho ativo do agente durante operações do lado do servidor. Para evitar cobranças contínuas, pare quaisquer transformações em execução. Consulte a página de preços do AWS Transform para detalhes.
Se você implantou a infraestrutura de escalonamento, siga as instruções de limpeza.
Conclusão
Você pode simplificar atualizações de runtime do Lambda com o AWS Transform custom, um serviço de IA Agêntica desenvolvido especificamente para modernização de código.
Clientes com um backlog de funções existentes para atualizar podem usar o Transform custom para coordenar e simplificar atualizações em massa em sua organização. A ferramenta também ajuda você a passar da cauda do ciclo de lançamento para a vanguarda. Ao tornar as atualizações de runtime mais rápidas e mais diretas, você pode ficar à frente dos desafios de descontinuação e aproveitar melhor desempenho e novos recursos de runtimes mais recentes.
O AWS Transform custom se encaixa em cada estágio do ciclo de vida de desenvolvimento de software: identificar risco cedo, confirmar cobertura de validação, transformar, validar, implantar. Ele pode trabalhar com seu gerenciamento de código, compilação, teste e implantação existentes, dando a você controle sobre alterações usando seus processos e ferramentas existentes.
Comece com a transformação de documentação em uma função hoje para ter experiência prática com o AWS Transform custom. Revise os runtimes atualmente descontinuados e faça um plano para atualizar.
Para mais informações, consulte a documentação do AWS Transform custom e o tópico Introdução no Guia do Usuário do AWS Transform.
Para mais recursos de aprendizado Serverless, visite Serverless Land.
Este conteúdo foi traduzido do post original do blog, que pode ser encontrado aqui.
Autores
![]() |
Brian Krygsman é um Arquiteto de Soluções Sênior na Amazon Web Services. Ele tem experiência em desenvolvimento de aplicações e profundidade técnica em arquiteturas orientadas a eventos e desenvolvimento Serverless. Ele trabalha com clientes empresariais para utilizar a nuvem de forma eficaz ao construir soluções escaláveis, tolerantes a falhas, de alto desempenho e econômicas. |
![]() |
Jonathan Tuliani é um Gerente de Produto Principal do AWS Lambda. Baseado em Dublin, Irlanda, Jonathan é responsável pelos runtimes de linguagem de programação do Lambda. Ele faz a ponte entre clientes e equipes de engenharia para definir estratégia, priorizar investimentos e projetar recursos que resolvem problemas reais dos clientes. |
Tradutores
![]() |
Daniel Abib é Arquiteto de Soluções Sênior e Especialista em Amazon Bedrock na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e especialização em Machine Learning. Ele trabalha apoiando Startups, ajudando-os em sua jornada para a nuvem.
https://www.linkedin.com/in/danielabib/ |
![]() |
Nicolas Tarzia é Senior Technical Account Manager na AWS, com mais de 13 anos de experiência, com ampla experiência em arquitetura cloud, engenharia e design de software. Atualmente está habilitando empresas do ramo de ISV (Independent Software Vendors) simplificando a operação na nuvem e otimizando os custos em cloud. Sua área de interesse são tecnologias serverless.
https://www.linkedin.com/in/nicolastarzia |



