

# Quando usar runtimes somente para sistema operacional do Lambda
<a name="runtimes-provided"></a>

O Lambda fornece [runtimes gerenciados](lambda-runtimes.md) para Java, Python, Node.js, .NET e Ruby. Para criar funções do Lambda em uma linguagem de programação que não esteja disponível como um runtime gerenciado, use um runtime somente para sistema operacional (a família de runtime `provided`). Há três casos de uso principais para runtimes somente para sistema operacional:
+ **Compilação nativa antecipada (AOT)**: linguagens, como Go, Rust, Swift e C\+\+ compilam nativamente em um binário executável, o que não requer um runtime de linguagem dedicado. Essas linguagens precisam apenas de um ambiente de sistema operacional no qual o binário compilado possa ser executado. Também é possível usar runtimes somente para sistema operacional do Lambda para implantar binários compilados com .NET Native AOT e Java GraalVM Native Image.

  Você deve incluir um cliente de interface de runtime no binário. O cliente de interface de runtime chama o [Usar a API de runtime do Lambda para runtimes personalizados](runtimes-api.md) para recuperar as invocações da função e, em seguida, chama o manipulador da função. O Lambda fornece clientes de interface de runtime para [Rust](lambda-rust.md), [Go](golang-package.md#golang-package-mac-linux), [.NET Native AOT](dotnet-native-aot.md), [Swift](https://github.com/awslabs/swift-aws-lambda-runtime) (experimental) e [C\+\+](https://github.com/awslabs/aws-lambda-cpp) (experimental).

  Você deve compilar o binário para um ambiente Linux e para a mesma arquitetura de conjunto de instruções que planeja usar para a função (x86\_64 ou arm64).
+ **Runtimes de terceiros**: é possível executar funções do Lambda usando runtimes prontos para uso, como o [Bref](https://bref.sh/docs/news/01-bref-1.0.html#amazon-linux-2) para PHP.
+ **Runtimes personalizados**: você pode criar seu próprio runtime para uma linguagem ou versão de linguagem para a qual o Lambda não fornece um runtime gerenciado, como Node.js 19. Para obter mais informações, consulte [Criar um runtime personalizado para AWS Lambda](runtimes-custom.md). Esse é o caso de uso menos comum para runtimes somente para sistema operacional.

O Lambda oferece suporte aos seguintes runtimes somente para sistema operacional:


| Nome | Identificador | Sistema operacional | Data da substituição | Bloquear a criação de funções | Bloquear a atualização de funções | 
| --- | --- | --- | --- | --- | --- | 
| Runtime somente para sistema operacional | `provided.al2023` | Amazon Linux 2023 |  30 de junho de 2029  |  31 de julho de 2029  |  31 de agosto de 2029  | 
| Runtime somente para sistema operacional | `provided.al2` | Amazon Linux 2 |  31 de julho de 2026  |  31 de agosto de 2026  |  30 de setembro de 2026  | 

O runtime do Amazon Linux 2023 (`provided.al2023`) oferece várias vantagens em relação ao Amazon Linux 2, incluindo uma área de implantação menor e versões atualizadas de bibliotecas, como `glibc`.

O runtime `provided.al2023` usa `dnf` como gerenciador de pacotes em vez de `yum`, que é o gerenciador de pacotes padrão no Amazon Linux 2. Para obter mais informações sobre as diferenças entre `provided.al2023` e`provided.al2`, consulte [Introducing the Amazon Linux 2023 runtime for AWS Lambda](https://aws.amazon.com/blogs/compute/introducing-the-amazon-linux-2023-runtime-for-aws-lambda/) no Blog AWS Compute.