0
Help us understand the problem. What are the problem?
Organization

AWS Lambda(Python)にインストールされているライブラリ一覧

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はあるので、そちらを使えということでしょうかね。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?