Lambdaのboto3バージョンを確認する | AWS SDK for Python

Lambdaのboto3/botocoreバージョンを確認する方法の備忘録です。

はじめに

おはよう。@bioerrorlogです。

Lambdaからboto3を用いてAWS APIを叩くのは、よくあるケースかと思います。

私もよくLambda上でboto3を使いますが、先日Lambdaのboto3バージョンではカバーされていない機能を使用し、エラーになってしまったことがありました。 その際、Lambdaのboto3バージョンを確認する必要がありましたが、ぱっとやり方が思い浮かばないことに気が付きました。

そこで今回は、Lambdaのboto3バージョンを確認する方法をメモします。

Lambdaのboto3バージョンを確認する方法

大きく分けて、以下の二つの方法があります。

  • ドキュメントからLambdaに使われているboto3バージョンを確認する
  • Lambdaを実行してboto3バージョンを確認する

以降、それぞれ見ていきます。

ドキュメントから確認する

まず一つ目のやり方は、ドキュメントからLambdaのboto3バージョンを確認することです。

以下のドキュメントに、Lambdaランタイム毎のboto3/botocoreバージョンが記載されています。

Lambda runtimes - AWS Lambda

f:id:BioErrorLog:20210220162612p:plain
ドキュメントにLambdaのboto3/botocoreバージョンが記載されている(オレンジ枠)

Lambdaのランタイムを確認して、上記ドキュメントからboto3バージョンを確認するのが一番手っ取り早い確認方法かもしれません。

しかし、ドキュメントがちゃんと最新化されているか、は注意する必要があります (特に、日本語ページはしばしば最新版が反映されていないので注意が必要です)

Lambda上から確認する

二つ目のやり方は、Lambdaを実行してboto3バージョンを確認することです。

boto3/botocoreのバージョンは、boto3.__version__botocore.__version__で取得することが出来ます。

よって、例えば以下のようにboto3.__version__botocore.__version__を出力させれば、boto3/botocoreのバージョンを確認できます。

import boto3
import botocore

def lambda_handler(event, context):
    
    print(f'boto3 version: {boto3.__version__}')
    print(f'botocore version: {botocore.__version__}')
# 出力結果
boto3 version: 1.16.31
botocore version: 1.19.31

ドキュメントでの確認とは違い、こちらのやり方では確実にLambdaで使用されているboto3のバージョンを調べることが出来ます。

おわりに

今回は、Lambdaのboto3バージョンを確認する方法を簡単にメモしました。

boto3の新しいリリース機能を使いたいときは、Lambdaのboto3バージョンが追い付いていない可能性があります。 そんな時は、さっとLambdaのboto3バージョンを確認できるとよいですね。

boto3には常日頃お世話になっているので、もっと詳しくなっていきたいところです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

Lambda runtimes - AWS Lambda

Troubleshoot Python (Boto 3) Lambda Function Runtime Errors

python - Check Boto3 Version - Stack Overflow