[Lambda] Python 2.7 のサポートが2021年7月15日に終了します
Python 2.7自体のサポートは2020年1月1日に終了しましたが、AWS Lambdaでは引き続き使えていました。 しかし、2021年7月15日にAWS Lambdaでもサポートを終了する旨が発表されました。
時系列を整理
Lambda(Python 2.7)について整理しました。
2021年7月15日: Lambdaのサポートや新規作成が終了
- セキュリティパッチやその他の更新を終了する
- テクニカルサポートの対象外になる
- Python 2.7を使って、新しいLambda関数の作成ができなくなる
- 既存のLambda関数を更新することはできる
- 既存のLambda関数を実行することはできる
2021年9月30日: 既存Lambdaの更新が終了
- 既存のLambda関数が更新できなくなる
- 既存のLambda関数を実行することはできる
- セキュリティパッチの適応やテクニカルサポートを受けるために、ランタイム更新を強く推奨する
Python 2.7を使っているLambdaを調べる
公式で案内されている通り、下記コマンドの実行が一番お手軽です。('pytyon2.7'
部分にエスケープシーケンスを追加しています)
aws lambda list-functions \ --output text \ --query Functions[?Runtime==\'python2.7\'].FunctionArn
もし、Python 2.7を使用しているLambdaがある場合、下記のようにARNが表示されます。
arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:python-27-sample-function
他にもいくつかの手段があります。
- メールで通知される
- パーソナルヘルスダッシュボードで通知される
- AWS Configで調べる(公式ブログで紹介あり)
Python 2からPython 3への移行
下記などを参考に対応します。2to3
コマンドですね。
- Porting Python 2 Code to Python 3 — Python 3.9.2 documentation
- 25.4. 2to3 - Automated Python 2 to 3 code translation — Python 2.7.18 documentation
2to3 example.py
個人的なおすすめ手順
Lambdaの重要度や使える時間などにもよりますが、下記の方法がおすすめです(安心的な意味で)。
- Python 2.7で作業する
- テストコードを書く(カバレッジを100%になるべく近づける)
- テストコードを実行し、PASSすることを確認する
- Python 3.xで作業する
- テストコードを実行し、FAILDを確認する(PASSしたらラッキー)
2to3
でコードを修正する- テストがPASSするように、残りのコードを修正する
- テストがすべてPASSして完了!
さいごに
ついにPython 2.7のサポートが終了します。他のランタイムのサポートは下記にまとまっているので、参考にしてみてください。