AWSはLambdaがマネージドランタイムとコンテナベースイメージの両方としてPython 3.10をサポートし、開発者がランタイムの改善と機能を活用できるようになったと発表した。
AWS Lambdaは、開発者がサーバーを管理することなくクラウド上でコードを実行できるサーバーレスコンピューティングサービスで、自動スケーリングと高可用性を提供する。また、Python、Node、.NETなど複数のランタイムもサポートしている。同サービスは今回Pythonバージョン3.10をサポートし、構造的なパターンマッチ、エラーメッセージの改善、パフォーマンスの向上を含んでいる。
AWS Computeのブログ記事で、AWSのシニアソリューションアーキテクトであるSuresh Poopandi氏は、構造的パターンマッチがPython 3.10のもっとも重要な追加要素である、と言及している。
構造的パターンマッチでは、開発者はリスト、タプル、辞書などのデータ構造に対してパターンを使用してマッチングし、それに基づいてコードを実行できます。この機能により、開発者は複雑なデータ構造を処理するコードをより簡単に書くことができ、コードの可読性と保守性を向上できます。
また、エラーメッセージの改善により、開発者はエラーの原因に関するより多くの情報を得ることができ、考えられる解決策を提案できるため、より迅速に問題を特定し修正可能だ。
LambdaにおけるPython 3.10のサポートは、最初のRCリリースから1年半後のことである。このリリース後、GithubのベースイメージでLambdaのサポートが要請されたが、それには時間がかかった。リクエストの回答者の一人はこう述べている。
顧客としては、12ヶ月のアップグレードサイクルが決まっているシステムのアップデートにAWSが12ヶ月以上かかっていることが心配です。AWSがPython 3.9や3.10の時のようなやり方を続けるなら、LambdaはPythonのバージョンにどんどん遅れをとっていきます。
さらに、FiservのVP architect fellow platform engineeringであるMichael Brewer氏は、次のようにツイートしている。
3.11が間もなく出て、3.9より速くなることを期待しよう。AWS lambda python 3.10は、パフォーマンス回帰のためスキップされるようだ。
しかし、同社はすでにPython 3.11用のプレビューLambdaコンテナベースイメージを公開しており、これは変更の可能性があるため、本番用のワークロードに使用するべきではない。
DuckbillGroupのチーフクラウドエコノミストであるCorey Quinn氏は、ブログ記事でこう結論付けている。
AWSの主要な競合他社は、すべてPython 3.10をサポートしている。AWSが顧客の求める言語ランタイムを実装するのはとっくに過去の話だ(かなり合理的だけど!)。あるいは1年以上にわたって私たちに届いた "取り組んでいる "という言葉よりも、もっと高い透明性を提供するべき時が来ているのだ。
開発者は、AWS Management Console、AWS CLI、AWS SDK、AWS SAM、AWS CDK、または代替のインフラストラクチャ・アズ・コード(IaC)の選択肢を使ってPython 3.10で関数を構築デプロイできる。さらにコンテナイメージを使用して関数をビルドおよびデプロイ可能だ。
PythonによるLambda関数の構築の詳細については、ドキュメントページで確認してもらいたい。