Lambda で使用する Boto3 のバージョンを固定してみた
AWS Lambdaで使用するBoto3のバージョンをレイヤーを使って最新にしてみた | DevelopersIO
ほぼ上記ブログ通りです。
手順
以下のコマンドで Boto3 の指定のバージョンをインストールします。
コマンド実行環境は CloudShell です。
$ mkdir python
$ pip3 install boto3==1.34.138 -t ./python
$ zip -r ./python.zip .
CloudShell から python.zip をダウンロードして Lambda レイヤーに登録します。
今回はコンソールから zip ファイルをアップロードしました。

Python 3.11 の Lambda 関数を作成し、レイヤーに作成済みのレイヤー ARN を指定しました。

以下のコードを実行して Boto3 のバージョンを確認します。
import boto3
def lambda_handler(event, context):
print(boto3.__version__)
実行結果は以下の通り、バージョン指定してインストールした Boto3 のバージョンが表示されました。
1.34.138
補足
Boto3 のバージョンごとの変更履歴は GitHub リポジトリの CHANGELOG.rst に記載されています。
boto3/CHANGELOG.rst at develop · boto/boto3 · GitHub
常に最新バージョンを使用していることで Lambda のコードに変更を加えていなくてもエラーが発生するケースもあります。
Lambda関数が突然動かなくなった話 - サーバーワークスエンジニアブログ
しかしながら、バージョンを固定してしまうと Lambda 基盤のアップデートが行われず、少なからずセキュリティリスク等を持つ状態になってしまうため、恒久的にはランタイムバージョンの更新は自動で行われるようにするのが好ましいです。
バージョンを固定すると上記のデメリットもあるため、運用については要件に合わせて検討してください。
まとめ
今回は Lambda で使用する Boto3 のバージョンを固定してみました。
どなたかの参考になれば幸いです。
Discussion