AWS Lambda(Python)にインストールされているライブラリ一覧
概要
AWS Lambdaはサーバーの管理を必要としないプログラム実行環境です。
API GatewayやCloudWatch Eventsなどをトリガーとして設定することで、非常に簡単かつ手軽にコードを動かすことが出来ます。
扱えるプログラミング言語としては、PythonやNode.js, Goなどメジャーな言語はだいたいサポートされていますが、ググって出てくる情報の多さからPythonが使われることが多い印象です。
そこで、Lambdaに用意されているPython実行環境にはじめからインストールされているライブラリとそのバージョンを調べたので、調べ方と合わせてまとめました。
調べ方
簡単です。
標準モジュールのpkg_resourcesを使うことで、その環境にインストールされているライブラリを一覧表示することができるので、これをLambada自体で実行するだけです。
import pkg_resources
def lambda_handler(event, context):
for dist in pkg_resources.working_set:
print(dist.project_name, dist.version)
記事執筆時点(2022/05/23)では、Lambadaに用意されているPythonランタイムとしてバージョン3.6, 3.7, 3.8, 3.9があるので、各バージョンのランタイムで実行した結果を以降に記します。
Python3.6の場合
urllib3 1.26.6
six 1.16.0
s3transfer 0.5.0
python-dateutil 2.8.2
jmespath 0.10.0
idna 2.10
chardet 4.0.0
certifi 2020.11.8
botocore 1.21.56
boto3 1.18.55
setuptools 40.6.2
pip 18.1
Python3.7の場合
urllib3 1.26.6
six 1.16.0
s3transfer 0.5.1
requests 2.26.0
python-dateutil 2.8.2
jmespath 0.10.0
idna 2.10
charset-normalizer 2.0.12
chardet 4.0.0
certifi 2020.11.8
botocore 1.23.32
boto3 1.20.32
setuptools 47.1.0
pip 20.1.1
Python3.8の場合
urllib3 1.26.6
six 1.16.0
s3transfer 0.5.2
python-dateutil 2.8.2
jmespath 0.10.0
botocore 1.23.32
boto3 1.20.32
setuptools 56.0.0
rapid-client 0.0.0
pip 22.0.4
Python3.9の場合
urllib3 1.26.6
six 1.16.0
simplejson 3.17.2
s3transfer 0.5.2
python-dateutil 2.8.2
jmespath 0.10.0
botocore 1.23.32
boto3 1.20.32
awslambdaric 2.0.0
setuptools 58.1.0
pip 22.0.4
まとめ
PythonでAWSリソースを操作するときに使うboto3やbotocoreといったライブラリはやはりインストールされているようです。
また、python-dateutilライブラリもLambdaの用途的に日付や時刻を扱うことが多いので納得です。
ちょっと以外だったのは、Python3.7には含まれていたrequestsライブラリが3.8以降には入っていないことです。urllibはあるので、そちらを使えということでしょうかね。