Yuta NakataのBlog

Python / AWS / ITについて役立つ情報を発信します

サポートが終わるLambdaを洗い出し、改めてそのリスクを考える

この記事でわかること

  • Python3.9サポート終了のタイムラインと影響
  • 対象Lambda関数の洗い出しコマンド(全リージョン対応)

メール来たけど、対応は必要?

AWSから「Python3.9がLambdaで使えなくなる」というメールが来て焦った方、多いと思います。 この記事では対応に必要な情報を2分で把握できます。

お客様の AWS アカウントで現在、Python 3.9 ランタイムを使用している 1 つ以上の AWS Lambda 関数があることをご連絡いたします。 AWS Lambda での Python 3.9 のサポートは、Python 3.9 のサポート終了日である 2025 年 10 月 30 日 [1] に伴い、2025 年 12 月 15 日に終了します。サポート終了は関数の実行に影響しませんので、関数は引き続き実行されます。ただし、これらの関数は AWS Lambda チームによるメンテナンスやパッチの適用が行われないサポート対象外のランタイムで実行されます。 Lambda ランタイムサポートポリシー [2] に記載されているように、Lambda の言語ランタイムのサポート終了はいくつかの段階で行われます。 - 2025 年 12 月 15 日以降、Lambda は Lambda 関数で使用される Python 3.9 ランタイムにセキュリティパッチやその他の更新を適用しなくなり、Python 3.9 を使用する関数はテクニカルサポートの対象外となります。また、Python 3.9 は AWS コンソールでは利用できなくなりますが、AWS CloudFormation、AWS CLIAWS Serverless Application Model (SAM)、またはその他のツールを使用して Python 3.9 を使用した関数の作成および更新は引き続き可能です。 - 2026 年 1 月 15 日以降、Python 3.9 ランタイムを使用した新しい Lambda 関数の作成ができなくなります。 - 2026 年 2 月 15 日以降、Python 3.9 ランタイムを使用した既存の関数の更新ができなくなります。 2025 年 12 月 15 日までに、Python 3.9 ランタイムを使用した既存の関数を Lambda で利用可能な最新の Python ランタイムにアップグレードすることをお勧めします。 Python 3.9 ランタイムを使用する影響を受ける Lambda 関数は、AWS Health Dashboard影響を受けるリソース タブに一覧表示されています。 この通知は、$LATEST 関数バージョンの Python 3.9 ランタイムを使用する関数に対して生成されています。次のコマンドは、AWS CLI [3] を使用して、公開されている関数バージョンを含む、Python 3.9 を使用している特定のリージョンのすべての関数を一覧表示する方法を示しています。アカウントにあるこのような関数をすべて確認するには、それぞれのリージョンで次のコマンドを実行してください。

AWSからのMailで、Lambda Python3.9のサポートが終わるって話でした。

  • サポートが終わるとどうなるの?
  • 対象のLambdaを見つける方法は?

について解説していきたいと思います。

サポート終了後に起きる影響と制限(2025/12〜2026/2)

上述したメールにもあるように、

Python 3.9 のサポート終了日である 2025 年 10 月 30 日 [1] に伴い、2025 年 12 月 15 日に終了します。サポート終了は関数の実行に影響しませんので、関数は引き続き実行されます。ただし、これらの関数は AWS Lambda チームによるメンテナンスやパッチの適用が行われないサポート対象外のランタイムで実行されます

また、

  • 2025 年 12 月 15 日以降、Lambda は Lambda 関数で使用される Python 3.9 ランタイムにセキュリティパッチやその他の更新を適用しなくなり、Python 3.9 を使用する関数はテクニカルサポートの対象外となります。また、Python 3.9 は AWS コンソールでは利用できなくなりますが、AWS CloudFormation、AWS CLIAWS Serverless Application Model (SAM)、またはその他のツールを使用して Python 3.9 を使用した関数の作成および更新は引き続き可能です。

  • 2026 年 1 月 15 日以降、Python 3.9 ランタイムを使用した新しい Lambda 関数の作成ができなくなります。

  • 2026 年 2 月 15 日以降、Python 3.9 ランタイムを使用した既存の関数の更新ができなくなります。

のように段階的に制限が厳しくなります。

影響タイミングは以下の図を見ると一目で把握できます👇

対象のLamnbdaを洗い出す

まずは対象関数を洗い出しておくのが第一歩です。

下記Shellをコピペして実行し、一覧を確保しましょう

#!/bin/bash

declare -a REGIONS=($(aws ec2 describe-regions --output text --query "sort(Regions[].RegionName)"))

for REGION in "${REGIONS[@]}"
do
  aws lambda list-functions --region ${REGION} --output table --query "sort_by(Functions[?Runtime=='python3.9'].{Name:FunctionName,Runtime:Runtime},&Name)" >& functions.txt &
done

これを実行

./main.sh

し、functions.txtを確認すると

一覧で確認できます

www.yuta-nakata.net

対応方法

✅ マネジメントコンソールの場合 1. Lambda関数を開く 2. 「ランタイム設定」→「編集」 3. Python 3.11 / 3.12 などに変更して保存 4. 動作確認(テストイベントなど)

✅ IaC(CloudFormation / SAM / CDK)の場合 1. テンプレート内の Runtime を修正
 例)Runtime: python3.9python3.11 2. デプロイ(sam deploy / cdk deploy / cfn deploy) 3. 動作確認

まとめ

まずは本記事のスクリプトで Python3.9 を使っているLambdaを洗い出しておきましょう。

Lambdaのメンテを行うためにも、SAMやCloudFormationを用いたIaC化や、UT等、運用アプリケーションとして必要なことは一つずつ確実にやっていきましょう。

参考文献

dev.classmethod.jp