AWS Lambdaで使用されるモジュールバージョンの調べ方

対話形式でのコマンド実行ができないためLambda関数を作成します。

「関数の作成」をクリックします。

設計図の選択では「一から作成」を選択します。

手動で実行するためトリガーは設定しません。

手動で実行するためトリガーは設定しません。

今回はPython3.6で実装します。

ロールの設定はファイルの確認を行うだけのため「基本的なエッジLambdaのアクセス権限」で十分です。

※コードは後ほど編集します。

次へ進み内容を確認語「関数の作成」を選択します。

これでLambda functionが作成できました。

バージョンの確認

コードの編集を行います。

環境変数の一覧(念の為)と対象ディレクトリ内を取得するコードを作成しました。

1import os23def lambda_handler(event, context):4    #環境変数一覧を取得5    print("===[environment-variables]===")6    for env in os.environ:7        print(env)8    9    #ランタイムの格納されているディレクトリを確認10    rtdir=os.environ.get("LAMBDA_RUNTIME_DIR")11    print("\n===[runtime directory:"+rtdir+"]===")12    13    #ディレクトリ内を表示14    files = os.listdir(rtdir)15    for file in files:16        print(file)17    18    return 0

出力ログ

1START RequestId: 259734ba-a4bd-11e7-be2c-85717f378c80 Version: $LATEST2===[environment-variables]===3TZ4LD_LIBRARY_PATH5LAMBDA_TASK_ROOT6LAMBDA_RUNTIME_DIR7︙89===[runtime directory:/var/runtime]===10liblambdaio.so11s3transfer12botocore-1.7.2.dist-info13docutils-0.14.dist-info14boto3-1.4.7.dist-info15liblambdaruntime.so16boto317six.py18liblambdalog.so19python_dateutil-2.6.1.dist-info20s3transfer-0.1.11.dist-info21botocore22six-1.10.0.dist-info23jmespath-0.9.3.dist-info24liblambdaipc.so25awslambda26__pycache__27docutils28dateutil29jmespath30END RequestId: 259734ba-a4bd-11e7-be2c-85717f378c803132REPORT RequestId: 259734ba-a4bd-11e7-be2c-85717f378c80	Duration: 12.50 ms	Billed Duration: 100 ms 	Memory Size: 128 MB	Max Memory Used: 27 MB

ログ出力の結果からboto3のバージョンが1.4.7であることが分かりました。

boto3-1.4.7.dist-info

metadata.jsonの中も確認すると”version”: “1.4.7”であることが分かります。

[/var/runtime/boto3-1.4.7.dist-info/metadata.json]

1{2	"license": "Apache License 2.0", 3	"name": "boto3", 4	"metadata_version": "2.0", 5	"generator": "bdist_wheel (0.24.0)", 6	"summary": "The AWS SDK for Python", 7	"run_requires": [8		{9			"requires": [10				"botocore>=1.7.0,<1.8.0", 11				"jmespath>=0.7.1,<1.0.0", 12				"s3transfer>=0.1.10,<0.2.0"13			]14		}15	], 16	"version": "1.4.7", 17	"extensions": {18		"python.details": 19			"project_urls": {20				"Home": "https://github.com/boto/boto3"21			}, 22			"document_names": {23				"description": "DESCRIPTION.rst"24			}, 25			"contacts": [26				{27					"role": "author", 28					"name": "Amazon Web Services"29				}30			]31		}32	}, 33	"classifiers": [34		"Development Status :: 5 - Production/Stable", 35		"Intended Audience :: Developers", 36		"Natural Language :: English", 37		"License :: OSI Approved :: Apache Software License", 38		"Programming Language :: Python", 39		"Programming Language :: Python :: 2.6", 40		"Programming Language :: Python :: 2.7", 41		"Programming Language :: Python :: 3", 42		"Programming Language :: Python :: 3.3", 43		"Programming Language :: Python :: 3.4", 44		"Programming Language :: Python :: 3.5", 45		"Programming Language :: Python :: 3.6"46	], 47	"extras": []48}

Lambdaの公式ドキュメントではboto3のバージョンは1.4.4と記載されていますが実際には1.4.7が用意されていました。(2017/09/29現在)

新サービスや新機能が実装されLambdaより使用したい場合一度AWS SDKのバージョンを確かめておくと良いかもしれません。

今回は以上になります!

お疲れさまでした!

またお会いしましょう!

この記事を書いた人

aws-recipe-user