O runtime do Python 3.13 agora disponível no AWS Lambda | Cloud Computing

O runtime do Python 3.13 agora disponível no AWS Lambda | Cloud Computing

Este post foi escrito por Julian Wood, senior developer advocate, e Leandro Cavalcante Damascena, engenheiro sênior de arquitetura de soluções.

O AWS Lambda agora oferece suporte ao Python 3.13 como um runtime gerenciado e uma imagem base de container. Python é uma linguagem popular para criar aplicativos Serverless. A versão 3.13 do Python inclui várias mudanças na linguagem, na implementação e na biblioteca padrão. Com essa versão, os desenvolvedores de Python agora podem aproveitar esses novos recursos e aprimoramentos ao criar aplicativos Serverless no Lambda. O Python 3.13 também inclui suporte experimental para vários recursos, que não estão disponíveis no Lambda.

Você pode desenvolver funções do Lambda no Python 3.13 usando o AWS Management Console, a AWS Command Line Interface (AWS CLI), o AWS SDK para Python (Boto3), o AWS Serverless Application Model (AWS SAM), o AWS Cloud Development Kit (AWS CDK) e outras infraestruturas como ferramentas de código.

O runtime do Python 3.13 permite que você implemente as melhores práticas Serverless usando Powertools for AWS Lambda (Python). Este é um kit de ferramentas para desenvolvedores que inclui observabilidade, processamento em lote, integração com o AWS Systems Manager Parameter Store, idempotência, sinalizadores de recursos, métricas do Amazon CloudWatch, logs estruturado e muito mais.

O Lambda @Edge permite que você use o Python 3.13 para personalizar o conteúdo de baixa latência entregue pelo Amazon CloudFront.

Mudanças no runtime do AWS Lambda

Amazon Linux 2023

Assim como no runtime do Python 3.12, o runtime do Python 3.13 é baseado no runtime provided.al2023, que se baseia na imagem mínima do container Amazon Linux 2023. A imagem mínima do Amazon Linux 2023 usa microdnf como gerenciador de pacotes e symlinked  como dnf. Isso substitui o gerenciador de pacotes yum usado no Python 3.11 e nas imagens anteriores baseadas em AL2. Se você implantar suas funções do Lambda como imagens de container, deverá atualizar seus Dockerfiles para usar dnf em vez de yum ao atualizar para a imagem base do Python 3.13 a partir do Python 3.11 ou imagens base anteriores.

Saiba mais sobre o runtime provided.al2023 na postagem do blog Apresentando o runtime do Amazon Linux 2023 para o AWS Lambda e na postagem do blog de lançamento do Amazon Linux 2023.

Novos recursos do Python

Melhorias no modelo de dados

Há melhorias no modelo de dados do Python. __static_attributes__ armazena os nomes dos atributos acessados por meio do Self.x em qualquer função no corpo de uma classe.

Alterações de digitação (typing)

Com a implementação do PEP 702, agora você pode usar o novo decorador warnings.deprecated () para para suprimir notificações (warnings) s no sistema de tipos e em runtime.

O Python 3.13 também adiciona o PEP 696, que introduz valores padrão para parâmetros de tipo. Esse aprimoramento permite que os desenvolvedores especifiquem tipos padrão para TypeVar, ParamSpec e TypeVarTuple ao omitir argumentos de tipo.

Biblioteca padrão

A biblioteca padrão inclui melhorias para uma nova exceção PythonFinalizationError, gerada quando uma operação é bloqueada durante a finalização.

As novas funções base64.z85encode () e base64.z85decode () suportam codificação e decodificação de dados Z85.

O módulo copy agora tem uma função copy.replace (), com suporte para vários tipos integrados e qualquer classe que defina o método __replace__ ().

O módulo os tem um conjunto de novas funções para trabalhar com os descritores de arquivos de notificação temporizada do Linux.

Há uma mudança na semântica de mutação definida para locals ().

Recursos experimentais que não estão disponíveis

O Python 3.13 inclui vários recursos experimentais que não estão habilitados para o runtime gerenciado do Lambda ou para as imagens básicas. Esses recursos devem ser habilitados quando o runtime do Python é compilado. Como o runtime do Python 3.13 fornecido pelo Lambda é destinado a cargas de trabalho de produção, esses recursos não estão habilitados na versão Lambda do Python 3.13 e não podem ser habilitados por meio de um sinalizador (flag) de runtime. Para usar esses recursos no Lambda, você pode implantar seu próprio runtime do Python usando um runtime personalizado ou uma imagem de container com esses recursos habilitados.

CPython nas threads livre

Você não pode ativar o suporte experimental para executar o Python em um modo de execução livre, com o bloqueio global do intérprete (GIL) desativado.

Compilador Just-in-Time (JIT)

Você também não pode habilitar o compilador JIT experimental no runtime gerenciado do Lambda ou na imagem base.

Considerações sobre desempenho

No lançamento, os novos runtime do Lambda recebem menos uso do que os já estabelecidos. Isso pode resultar em tempos de inicialização a frio (coldstart) mais longos devido à redução da residência do cache nos subsistemas internos do Lambda. Os coldstarts geralmente melhoram nas semanas seguintes ao lançamento, à medida que o uso aumenta. Como resultado, a AWS recomenda não tirar conclusões de comparações de desempenho lado a lado com outros runtimes do Lambda até que o desempenho se estabilize. Como o desempenho é altamente dependente da carga de trabalho, os clientes com cargas de trabalho sensíveis ao desempenho devem realizar seus próprios testes, em vez de confiar em benchmarks de teste genéricos.

Usando o Python 3.13 no Lambda

Console de gerenciamento da AWS

Para usar o runtime do Python 3.13 para desenvolver suas funções do Lambda, especifique um valor de parâmetro de runtime Python 3.13 ao criar ou atualizar uma função. A versão 3.13 do Python está disponível no menu suspenso Runtime na página Criar função:

Creating Python function in AWS Management Console

Criação da função Python no AWS Management Console

Para atualizar uma função Lambda existente para o Python 3.13, navegue até a função no console do Lambda e escolha Editar no painel de configurações do Runtime. A nova versão do Python está disponível no menu suspenso Runtime.

Changing a function to Python 3.13

Alterando uma função para Python 3.13

Talvez seja necessário verificar a compatibilidade do código e das dependências com o Python 3.13 e atualizar conforme necessário.

Imagem do container AWS Lambda

Altere a versão da imagem base do Python modificando a instrução FROM em seu Dockerfile

Modelo de aplicativo Serverless da AWS (AWS SAM)

No AWS SAM, defina o atributo Runtime como python3.13 para usar essa versão.

O AWS SAM oferece suporte à geração desse modelo com o Python 3.13 para novos aplicativos Serverless usando o comando sam init. Consulte a documentação do AWS SAM.

AWS Cloud Developer Kit (AWS CDK)

No AWS CDK, defina o atributo de runtime como runtime.python_3_13 para usar essa versão. No Python CDK:

No TypeScript CDK:

Conclusão

O Lambda agora oferece suporte ao Python 3.13 como um runtime de linguagem gerenciado. Esta versão usa o sistema operacional Amazon Linux 2023 e inclui adições à linguagem Python 3.13, incluindo melhorias no modelo de dados, alterações de digitação e atualizações na biblioteca padrão. Esta versão não oferece suporte à opção experimental de desativar o bloqueio global do interpretador ou o compilador JIT experimental.

Você pode criar e implantar funções usando o Python 3.13 usando o AWS Management Console, o AWS CLI, o AWS SDK, o AWS SAM, o AWS CDK ou a infraestrutura de sua escolha como ferramenta de código. Você também pode usar a imagem base de container do Python 3.13 se preferir criar e implantar suas funções usando imagens de container.

O suporte ao runtime do Python 3.13 ajuda os desenvolvedores a criar aplicativos Serverless mais eficientes, poderosos e escaláveis. Experimente o runtime do Python 3.13 no Lambda hoje e experimente os benefícios dessa versão atualizada da linguagem.

Para obter mais recursos de aprendizado Serverless, visite Serverless Land.

Este blog é uma tradução do conteúdo original em inglês (link aqui).

Biografia dos autores

Julian WoodJulian Wood é Developer Advocate Sênior na Amazon Web Services (AWS) e ajuda desenvolvedores e criadores a adotar Serverless como a tecnologias que podem transformar a maneira como criam e executam aplicativos.
Leandro Cavalcante Damascena

Leandro Cavalcante Damascena é um engenheiro sênior de arquitetura de soluções responsavel pelo Lambda Power Tools for Python

https://www.linkedin.com/in/leandrodamascena/

Biografia do tradutor

Daniel Abib

Daniel Abib é Senior Solution Architect 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 segurança. Ele trabalha apoiando clientes corporativos, ajudando-os em sua jornada para a nuvem.

https://www.linkedin.com/in/danielabib/

Compartilhe essa publicação, clicando nos botões abaixo:

Sobre Redação

Portal Direto Noticias - Imparcial, Transparente e Direto | https://diretonoticias.com.br | Notícias de Guarapari, ES e Brasil. Ative as notificações ao entrar e torne-se um seguidor. Caso prefira receber notícias por email, inscreva-se em nossa Newsletter, ou em nossas redes:

Veja Também

Amazon Managed Streaming for Apache Kafka (Amazon MSK)

Amazon Managed Streaming for Apache Kafka (Amazon MSK)

O blog da AWS Como o Sicoob está monitorando bilhões de transações financeiras na AWS Por Amanda Quinto, Arquiteta de Soluções Senior AWS e Felipe Pereira, Líder de Tecnologia da Informação no SICOOB. Com mais de 28 anos de história, o Sicoob é o maior sistema de cooperativas financeira brasileiro, com um portfolio que abrange