【AWS】 Lambda内で利用されるboto3のバージョンを調べてみた

Lambdaで実行するboto3のバージョンを調べたのでメモ。

調べ方

OSモジュールをインポートして、Lambdaのruntime情報が格納されているディレクトリを参照する。 以下はPython3系のLambdaを調べた時のコード。

import os
import pprint as pp

def lambda_handler(event, context):
    pp.pprint(os.listdir(os.environ.get('LAMBDA_RUNTIME_DIR')))

実行結果

Python3系のBoto3のバージョンを調べてみました。

Python 3.8

boto3-1.10.34

['boto3-1.10.34.dist-info',
 'botocore-1.13.34.dist-info',
 '__pycache__',
 'six.py',
 'docutils',
 'layer_bootstrap',
 'jmespath-0.9.4.dist-info',
 'urllib3',
 'botocore',
 'bootstrap',
 'six-1.13.0.dist-info',
 'rapid_client.cpp',
 's3transfer-0.2.1.dist-info',
 'setup.py',
 'jmespath',
 'runtime-release',
 'bin',
 'python_dateutil-2.8.0.dist-info',
 'lambda_runtime_client.py',
 'deps',
 'build',
 'boto3',
 'urllib3-1.25.7.dist-info',
 'lambda_runtime_exception.py',
 'lambda_runtime_marshaller.py',
 's3transfer',
 'docutils-0.15.2.dist-info',
 'dateutil',
 'lambda_internal',
 'bootstrap.py']

Python 3.7

boto3-1.10.34

['boto3-1.10.34.dist-info',
 'botocore-1.13.34.dist-info',
 '__pycache__',
 'six.py',
 'docutils',
 'layer_bootstrap',
 'jmespath-0.9.4.dist-info',
 'urllib3',
 'botocore',
 'bootstrap',
 'six-1.13.0.dist-info',
 's3transfer-0.2.1.dist-info',
 'test_bootstrap.py',
 'jmespath',
 'runtime-release',
 'test_lambda_runtime_marshaller.py',
 'bin',
 'python_dateutil-2.8.0.dist-info',
 'lambda_runtime_client.py',
 'boto3',
 'urllib3-1.25.7.dist-info',
 'lambda_runtime_exception.py',
 'lambda_runtime_marshaller.py',
 'test_lambda_runtime_client.py',
 's3transfer',
 'docutils-0.15.2.dist-info',
 'dateutil',
 'bootstrap.py']

Python 3.6

boto3-1.10.35

['liblambdalog.so',
 'liblambdaio.so',
 '__pycache__',
 'six.py',
 'docutils',
 'jmespath-0.9.4.dist-info',
 'urllib3',
 'botocore',
 'six-1.13.0.dist-info',
 's3transfer-0.2.1.dist-info',
 'jmespath',
 'runtime-release',
 'liblambdaipc.so',
 'bin',
 'python_dateutil-2.8.0.dist-info',
 'boto3',
 'urllib3-1.25.7.dist-info',
 'botocore-1.13.35.dist-info',
 'liblambdaruntime.so',
 's3transfer',
 'docutils-0.15.2.dist-info',
 'awslambda',
 'dateutil',
 'boto3-1.10.35.dist-info']

最後に

Lambdaはマネージドサービスなので、 モジュールのバージョンが変わるのかな?少し間を開けて調べてみよう。 モジュールのバージョンを任意に固定したい場合は、LambdaのLayer機能を利用して自身でモジュールアップロードすればできますね。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで