Runtimes do Lambda - AWS Lambda

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Runtimes do Lambda

O Lambda oferece suporte a vários idiomas por meio do uso de runtimes. Um runtime fornece um ambiente específico da linguagem que retransmite eventos de invocação, informações de contexto e respostas entre o Lambda e a função. Você pode usar runtimes fornecidos pelo Lambda ou criar seus próprios.

Cada versão principal da linguagem de programação lançada tem um runtime separado, com um identificador de runtime exclusivo, como nodejs20.x ou python3.12. Para alterar uma função com a finalidade de usar uma nova versão principal da linguagem, é necessário alterar o identificador de runtime. Como o AWS Lambda não pode garantir a compatibilidade com versões anteriores entre as versões principais, essa é uma operação direcionada ao cliente.

Em uma função definida como uma imagem de contêiner, você escolhe um runtime e a distribuição Linux ao criar a imagem de contêiner. Para alterar o runtime, crie uma nova imagem de contêiner.

Quando você usa um arquivo .zip para o pacote de implantação, escolhe um runtime ao criar a função. Para alterar o runtime, você pode atualizar a configuração da sua função. O runtime é emparelhado com uma das distribuições do Amazon Linux. O ambiente de execução subjacente fornece bibliotecas e variáveis de ambiente adicionais que podem ser acessadas no código de sua função.

O Lambda invoca sua função em um ambiente de execução. Um ambiente de execução fornece um ambiente de runtime isolado e seguro, que gerencia os recursos necessários para executar a função. O Lambda reutiliza o ambiente de execução de uma invocação anterior, caso haja alguma disponível, ou pode criar um novo ambiente de execução.

Para usar outras linguagens no Lambda, como Go ou Rust, use um runtime somente para sistema operacional. O ambiente de execução do Lambda fornece uma interface de runtime para obter eventos de invocação e enviar respostas. Você pode implantar outras linguagens implementando um runtime personalizado junto com o código da função ou em uma camada.

Tempos de execução compatíveis

A tabela a seguir lista os runtimes do Lambda compatíveis e as datas de descontinuação projetadas. Depois que um runtime for descontinuado, você ainda poderá criar e atualizar funções por um período limitado. Para ter mais informações, consulte Uso do runtime após a descontinuação. A tabela fornece as datas atualmente previstas para a descontinuação do runtime. Essas datas são fornecidas para fins de planejamento e estão sujeitas a alterações.

Runtimes compatíveis
Nome Identificador Sistema operacional Data da substituição Bloquear a criação de funções Bloquear a atualização de funções

Node.js 20

nodejs20.x

Amazon Linux 2023

Node.js 18

nodejs18.x

Amazon Linux 2

Node.js 16

nodejs16.x

Amazon Linux 2

12 de junho de 2024

15 de julho de 2024

15 de agosto de 2024

Python 3.12

python3.12

Amazon Linux 2023

Python 3.11

python3.11

Amazon Linux 2

Python 3.10

python3.10

Amazon Linux 2

Python 3.9

python3.9

Amazon Linux 2

Python 3.8

python3.8

Amazon Linux 2

14 de outubro de 2024

13 de novembro de 2024

7 de janeiro de 2025

Java 21

java21

Amazon Linux 2023

Java 17

java17

Amazon Linux 2

Java 11

java11

Amazon Linux 2

Java 8

java8.al2

Amazon Linux 2

.NET 8

dotnet8

Amazon Linux 2023

.NET 7 (somente contêiner)

dotnet7

Amazon Linux 2

14 de maio de 2024

.NET 6

dotnet6

Amazon Linux 2

12 de novembro de 2024

11 de janeiro de 2025

11 de fevereiro de 2025

Ruby 3.2

ruby3.2

Amazon Linux 2

Runtime somente para sistema operacional

provided.al2023

Amazon Linux 2023

Runtime somente para sistema operacional

provided.al2

Amazon Linux 2

nota

Para novas regiões, o Lambda não oferecerá suporte a runtimes que deverão ser descontinuados nos próximos seis meses.

O Lambda mantém os runtimes gerenciados e suas imagens base de contêiner correspondentes atualizados com patches e suporte para lançamentos de versões menores. Para obter mais informações, consulte Atualizações de runtime do Lambda.

O Lambda continua oferecendo suporte à linguagem de programação Go após a descontinuação do runtime Go 1.x. Para obter mais informações, consulte Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2 no AWS Compute Blog.

Todos os runtimes do Lambda compatíveis oferecem suporte às arquiteturas x86_64 e arm64.

Novas versões de runtime

O Lambda só fornece runtimes gerenciados para novas versões de linguagem quando a versão atinge a fase de suporte de longo prazo (LTS) do ciclo de lançamento da linguagem. Por exemplo, para o ciclo de lançamento do Node.js, quando a versão atinge a fase de LTS ativo.

Antes de a versão atingir a fase de suporte de longo prazo, permanece em desenvolvimento e ainda pode estar sujeita a alterações significativas. O Lambda aplica atualizações de runtime automaticamente por padrão. Portanto, alterações significativas na versão de um runtime podem impedir que as funções funcionem conforme o esperado.

O Lambda não fornece runtimes gerenciados para versões de linguagem que não estão programadas para a fase de LTS.

A lista a seguir mostra o mês de lançamento previsto para os próximos runtimes do Lambda. Essas datas são apenas indicativas e estão sujeitas a alterações.

  • Ruby 3.3: abril de 2024

  • Python 3.13: novembro de 2024

  • Node.js 22: novembro de 2024

Política de descontinuação de runtime

Os Runtimes do Lambda para arquivos .zip se baseiam em uma combinação de sistema operacional, linguagem de programação e bibliotecas de software que estão sujeitos a manutenção e atualizações de segurança. A política de descontinuação padrão do Lambda é descontinuar um runtime quando qualquer um de seus componentes importantes chegar ao fim do suporte de longo prazo (LTS) da comunidade e as atualizações de segurança não estiverem mais disponíveis. Geralmente, isso ocorre para runtimes de linguagens, mas, em alguns casos, um runtime pode ser descontinuado porque o sistema operacional (SO) chegou ao fim do LTS.

Depois que um runtime é descontinuado, o AWS pode não aplicar mais patches de segurança a ele, e as funções que o utilizam não são mais elegíveis para suporte técnico. Esses runtimes descontinuados são fornecidos “como estão”, sem nenhuma garantia, e podem conter bugs, erros, defeitos ou outras vulnerabilidades.

Para saber mais sobre como gerenciar atualizações e descontinuações de runtime, consulte as seções a seguir e Managing AWS Lambda runtime upgrades on the AWS Compute Blog.

Importante

Ocasionalmente, o Lambda atrasa a descontinuação de um runtime do Lambda por um período limitado além da data de término do suporte da versão da linguagem compatível com o runtime. Durante esse período, o Lambda aplica apenas patches de segurança ao sistema operacional do runtime. O Lambda não aplica patches de segurança aos runtimes de linguagem de programação depois que eles atingem a data de término do suporte.

Descontinuação do runtime do Node.js 16

Em resposta ao feedback dos clientes, a AWS está adiando a descontinuação do runtime do Node.js 16 para até 9 meses depois do fim do LTS da comunidade. O runtime do Node.js 16 será descontinuado na data mostrada na tabela Runtimes compatíveis. Conforme declarado na nota anterior, entre o final do LTS, em 11 de setembro de 2023, e a data de descontinuação, o Lambda aplicará apenas patches do sistema operacional ao runtime. Nenhum patch de segurança para o runtime da linguagem será aplicado durante esse período.

Adiar a descontinuação do Node.js 16 dá aos clientes que usam esse runtime a oportunidade de migrar suas funções diretamente para o Node.js 20, pulando o Node.js 18.

Modelo de responsabilidade compartilhada

O Lambda é responsável por selecionar e publicar atualizações de segurança para todos os runtimes gerenciados e imagens de base de contêiner compatíveis. Por padrão, o Lambda aplicará essas atualizações automaticamente às funções que usam runtimes gerenciados. Se a configuração padrão de atualização automática de runtime foi alterada, consulte o modelo de responsabilidade compartilhada dos controles de gerenciamento de runtime. Em funções implantadas usando imagens de contêiner, você é responsável por recompilar a imagem de contêiner da função a partir da imagem de base mais recente e por implantá-la novamente.

Quando um runtime é descontinuado, cessa a responsabilidade do Lambda de atualizar o runtime gerenciado e as imagens de base de contêiner. Você é responsável por atualizar suas funções para usar um runtime ou imagem de base compatível.

Em todos os casos, você é responsável por aplicar as atualizações ao código de função, incluindo suas dependências. Suas responsabilidades no modelo de responsabilidade compartilhada estão resumidas na tabela a seguir.

Fase do ciclo de vida do runtime Responsabilidades do Lambda Suas responsabilidades
Runtime gerenciado compatível

Fornecer atualizações de runtime periódicas com patches de segurança e outras atualizações.

Aplicar automaticamente as atualizações de runtime por padrão, (consulte Controles de gerenciamento de runtime para ver os comportamentos não padrão).

Atualizar seu código de função, incluindo dependências, para resolver qualquer vulnerabilidade de segurança.
Imagem de contêiner compatível Fornecer atualizações regulares de imagens de base de contêiner com patches de segurança e outras atualizações,.

Atualizar seu código de função, incluindo dependências, para resolver qualquer vulnerabilidade de segurança.

Recompilar e reimplantar regularmente sua imagem de contêiner usando a imagem de base mais recente.

Runtime gerenciado prestes a ser descontinuado

Notifique os clientes por meio da documentação, AWS Health Dashboard, e-mail e Trusted Advisor antes de descontinuar um runtime.

A responsabilidade por atualizações do runtime termina quando ele é descontinuado.

Monitore a documentação do Lambda, AWS Health Dashboard, e-mail ou Trusted Advisor para obter informações sobre a descontinuação de runtimes.

Atualize as funções para um runtime compatível antes que o runtime anterior seja descontinuado.

Imagem de contêiner prestes a ser descontinuada

Notificações de descontinuação não disponíveis para funções que usam imagens de contêiner.

A responsabilidade pelas atualizações de imagens de base de contêiner termina quando elas são descontinuadas.

Preste atenção aos cronogramas de descontinuação e atualize as funções para uma imagem de base compatível antes que a imagem anterior seja descontinuada.

Uso do runtime após a descontinuação

Depois que um runtime é descontinuado, o AWS pode não aplicar mais patches de segurança a ele, e as funções que o utilizam não são mais elegíveis para suporte técnico. Esses runtimes descontinuados são fornecidos “como estão”, sem nenhuma garantia, e podem conter bugs, erros, defeitos ou outras vulnerabilidades. As funções que usam um runtime descontinuado também podem apresentar degradação de performance ou outros problemas, como a expiração de um certificado, que podem fazer com que elas deixem de funcionar bem.

Por pelo menos 30 dias após a descontinuação de um runtime, você ainda poderá criar novas funções do Lambda usando esse runtime. A partir de 30 dias após a descontinuação, o Lambda começa a bloquear a criação de novas funções.

Por pelo menos 60 dias após a descontinuação de um runtime, você ainda pode atualizar o código de função e a configuração das funções existentes. A partir de 60 dias após a descontinuação, o Lambda começa a bloquear a atualização de código de função e configuração para as funções existentes.

Você pode atualizar uma função para usar uma versão de runtime compatível mais recente indefinidamente após um runtime ser descontinuado. Você deve testar se a função funciona com o novo runtime antes de aplicar uma alteração do runtime em ambientes de produção, pois não é possível reverter para o runtime descontinuado após o período de 60 dias. Recomendamos o uso de versões e aliases de função para permitir uma implantação segura com reversão.

Observe que o período exato pelo qual você pode continuar criando e atualizando funções não é fixo. Esse período pode variar para cada descontinuação e para diferentes Regiões da AWS. As datas nominais para o bloqueio de criações e atualizações de funções são fornecidas na tabela Runtimes compatíveis na primeira seção desta página. O Lambda não iniciará o bloqueio de criações ou atualizações de funções antes das datas indicadas nessa tabela.

Você poderá continuar a invocar suas funções indefinidamente depois que o runtime for descontinuado. No entanto, a AWS recomenda enfaticamente que você migre as funções para um runtime compatível para que as funções continuem a receber patches de segurança e permaneçam elegíveis para receber suporte técnico.

Receber notificações de descontinuação de runtime

Quando um runtime se aproxima da data de descontinuação, o Lambda envia um alerta por e-mail se alguma função da sua Conta da AWS usa esse runtime. As notificações também são exibidas no AWS Health Dashboard e no AWS Trusted Advisor.

  • Receber notificações por e-mail:

    O Lambda envia um alerta por e-mail pelo menos 180 dias antes da descontinuação de um runtime. Este e-mail lista as versões $LATEST de todas as funções que usam o runtime. Para ver uma lista completa das versões de funções afetadas, use o Trusted Advisor ou consulte Listagem de funções que usam um runtime descontinuado.

    O Lambda envia uma notificação por e-mail ao contato principal da sua Conta da AWS. Para obter informações sobre como visualizar ou atualizar os endereços de e-mail em sua conta, consulte Updating contact information na Referência geral da AWS.

  • Receber notificações por meio do AWS Health Dashboard:

    O AWS Health Dashboard exibe uma notificação pelo menos 180 dias antes da descontinuação do runtime. As notificações aparecem na página Integridade da sua conta, em Outras notificações. A guia Recursos afetados da notificação lista as versões $LATEST de todas as funções que usam o runtime.

    nota

    Para ver uma lista completa e atualizada das versões de funções afetadas, use o Trusted Advisor ou consulte Listagem de funções que usam um runtime descontinuado.

    As notificações do AWS Health Dashboard expiram 90 dias após a descontinuação do runtime.

  • Usar o AWS Trusted Advisor

    O Trusted Advisor exibe uma notificação pelo menos 180 dias antes da descontinuação do runtime. As notificações são exibidas na página Segurança. Uma lista das funções afetadas é exibida em AWS Lambda Functions Using Deprecated Runtimes. Essa lista de funções mostra versões $LATEST e publicadas, e é atualizada automaticamente para refletir o status atual das funções.

    Você pode ativar notificações semanais por e-mail no Trusted Advisor na página Preferências do console do Trusted Advisor.

Listagem de funções que usam um runtime descontinuado

Além de usar o Trusted Advisor para ver uma lista ativa das funções afetadas pelas descontinuações programadas de runtime, você também pode usar a AWS Command Line Interface (AWS CLI) para listar todas as versões de função que usam um runtime específico. Para gerar essa lista, execute o comando a seguir. Substitua RUNTIME_IDENTIFIER pelo nome do runtime que está sendo descontinuado e escolha sua própria Região da AWS. Para listar somente as versões da função $LATEST, omita --function-version ALL do comando.

aws lambda list-functions --function-version ALL --region us-east-1 --output text --query "Functions[?Runtime=='RUNTIME_IDENTIFIER'].FunctionArn"
dica

O exemplo de comando lista as funções na região us-east-1 para uma determinada Conta da AWS. Você precisará repetir esse comando para cada região na qual sua conta tiver funções e para cada uma das suas Contas da AWS.

Você também pode usar o recurso Consultas avançadas do AWS Config para listar todas as suas funções que usam um runtime afetado. Essa consulta retorna apenas as versões da função $LATEST, mas você pode agregar consultas para listar funções em todas as regiões e em várias Contas da AWS com um único comando. Para saber mais, consulte Querying the Current Configuration State of AWS Auto Scaling Resources no AWS Config Developer Guide.

Runtimes defasados

Os seguintes runtimes atingiram o fim do suporte:

Runtimes defasados
Nome Identificador Sistema operacional Data da substituição Bloquear a criação de funções Bloquear a atualização de funções

Java 8

java8

Amazon Linux

8 de janeiro de 2024

8 de fevereiro de 2024

12 de março de 2024

Go 1.x

go1.x

Amazon Linux

8 de janeiro de 2024

8 de fevereiro de 2024

12 de março de 2024

Runtime somente para sistema operacional

provided

Amazon Linux

8 de janeiro de 2024

8 de fevereiro de 2024

12 de março de 2024

Ruby 2.7

ruby2.7

Amazon Linux 2

7 de dezembro de 2023

9 de janeiro de 2024

8 de fevereiro de 2024

Node.js 14

nodejs14.x

Amazon Linux 2

4 de dezembro de 2023

9 de janeiro de 2024

8 de fevereiro de 2024

Python 3.7

python3.7

Amazon Linux

4 de dezembro de 2023

9 de janeiro de 2024

8 de fevereiro de 2024

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

3 de abril de 2023

3 de abril de 2023

3 de maio de 2023

Node.js 12

nodejs12.x

Amazon Linux 2

31 de março de 2023

31 de março de 2023

30 de abril de 2023

Python 3.6

python3.6

Amazon Linux

18 de julho de 2022

18 de julho de 2022

29 de agosto de 2022

.NET 5 (somente contêiner)

dotnet5.0

Amazon Linux 2

10 de maio de 2022

.NET Core 2.1

dotnetcore2.1

Amazon Linux

5 de janeiro de 2022

5 de janeiro de 2022

13 de abril de 2022

Node.js 10

nodejs10.x

Amazon Linux 2

30 de julho de 2021

30 de julho de 2021

14 de fevereiro de 2022

Ruby 2.5

ruby2.5

Amazon Linux

30 de julho de 2021

30 de julho de 2021

31 de março de 2022

Python 2.7

python2.7

Amazon Linux

15 de julho de 2021

15 de julho de 2021

30 de maio de 2022

Node.js 8.10

nodejs8.10

Amazon Linux

6 de março de 2020

6 de março de 2020

Node.js 4.3

nodejs4.3

Amazon Linux

5 de março de 2020

5 de março de 2020

Borda do Node.js 4.3

nodejs4.3-edge

Amazon Linux

5 de março de 2020

30 de abril de 2019

Node.js 6.10

nodejs6.10

Amazon Linux

12 de agosto de 2019

12 de agosto de 2019

.NET Core 1.0

dotnetcore1.0

Amazon Linux

27 de junho de 2019

30 de julho de 2019

.NET Core 2.0

dotnetcore2.0

Amazon Linux

30 de maio de 2019

30 de maio de 2019

Node.js 0.10

nodejs

Amazon Linux

31 de outubro de 2016

Em quase todos os casos, a data do fim da vida útil de uma versão da linguagem ou de um sistema operacional é conhecida com antecedência. Os links a seguir fornecem programações relacionadas com o fim da vida útil para cada linguagem compatível com o Lambda como um runtime gerenciado.

Políticas de suporte de framework e linguagem