BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWSがLamdba関数のPython 3.9ランタイムサポートを発表

AWSがLamdba関数のPython 3.9ランタイムサポートを発表

原文(投稿日:2021/08/20)へのリンク

AWSは先頃、同社のFaaS(Function as a Service)であるLambdaのマネージドランタイムとコンテナベースイメージの両方でPython 3.9をサポートすることを発表した。これによってPython 3.9によるAWS Lambdaの記述が可能になり、TLS 1.3のサポート、新しい文字列とディクショナリの操作、強化されたタイムゾーンのサポートといった新機能が利用できるようになる。

AWS Lambdaはランタイムの使用を通じて、JavaやRuby、Pythonといった複数の言語をサポートする。また、コンテナイメージとして定義された関数では、コンテナイメージの生成時にランタイム(Python 3.9ベースイメージ)とLinuxディストリビューションを選択することができる。これまでLambdaでは、Python 3.8がサポートされていた。今回、Python 3.9のサポートが導入されることによって、開発者は、そのランタイムによるメリットを享受することが可能になる。 

AWS Management Console、AWS CLIAWS SDKAWS Serverless Application Mode (AWS SAM)AWS Cloud Development Kit (AWS CDK)などで、Python 3.9ランタイムを使用したAWS Lambda関数の開発が可能になる。Python 3.9を使用したLambda関数をデプロイする場合は、Lambdaコンソールを使用して、Python 3.9ランタイムを選択した上でコードをアップロードすればよい。あるいは、AWS CLI、AWS Serverless Application Model (AWS SAM)AWS Cloud Formationを使うこともできる。 


出典: https://aws.amazon.com/blogs/compute/python-3-9-runtime-now-available-in-aws-lambda/

Python 3.9には、コードを一切変更することなくメリットを得ることのできる、2つの大きなパフォーマンス改善がある。AWS ServerlessのプリンシパルデベロッパアドボケートであるJames Beswick氏が、AWS LambdaのPython 3.9サポートに関する先日のAWS Computeのブログ記事の中で、次のように説明している。

一つ目が影響するのは、Pythonの組み込みデータ構造であるtuple、list、clist、set、frozensetを使用するコードです。Python 3.9では、これらは内部的にvectorcallプロトコルを使用します。これによって、一時使用されるオブジェクトの数が少なくなり、関数コールを高速化することが可能になります。二つ目に、Python 3.9では、以前のバージョンよりパフォーマンスの向上した新パーザを使用しています。

さらに、Lambdaサービスで、ハンドラの前に_init.pyが実行されるようになった。これにより、エラーを記録するための機会が拡張される。

FaaSの世界でAWSと競合するMicrosoftとGoogleは、それぞれのサービスですでにPython 3.9をサポートしている — Python 3.9サポートはAzure Functionのプレビュー版に含まれており、Google Functionsでは一般提供(GA)済である。 

最後に、Python 3.9ランタイムは、Chinaリージョン以外の、Lambdaが使用可能なすべてのリージョンで使用することができる。

この記事に星をつける

おすすめ度
スタイル

BT