[Lambda] Python 2.7 のサポートが2021年7月15日に終了します

2021年7月15日に新規作成ができなくなり、2021年9月30日に更新ができなくなります。更新する必要がある場合は、急ぎましょう。
2021.03.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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コマンドですね。

2to3 example.py

個人的なおすすめ手順

Lambdaの重要度や使える時間などにもよりますが、下記の方法がおすすめです(安心的な意味で)。

  1. Python 2.7で作業する
    1. テストコードを書く(カバレッジを100%になるべく近づける)
    2. テストコードを実行し、PASSすることを確認する
  2. Python 3.xで作業する
    1. テストコードを実行し、FAILDを確認する(PASSしたらラッキー)
    2. 2to3でコードを修正する
    3. テストがPASSするように、残りのコードを修正する
    4. テストがすべてPASSして完了!

さいごに

ついにPython 2.7のサポートが終了します。他のランタイムのサポートは下記にまとまっているので、参考にしてみてください。

参考