🌟
Lambdaの不可解なエラーについて
問題概要
Lambda(dockerイメージで起動)実行時に以下の様なエラーが発生した。
エラー内容
ライブラリでSequenceとか使った覚えは無い。特にヒントが見えなかった。
エラー
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': cannot import name 'Sequence' from 'collections' (/var/lang/lib/python3.12/collections/__init__.py)
Traceback (most recent call last):
原因
pathlibのパッケージをrequirements.txt
に記述していた事が原因だった。
これ自体、標準的に入っていたため、実は不要だった。細かい理由は判らないがバッティングしたのかもしれない?
解析までの道のり
状況
- ローカル環境では問題無かった
- ローカル環境でBuildした際にも特にエラーが発生しなかった
- ECRに登録してlambdaで実行した場合は起動時にエラーが発生した
切り分け1
公式で公開しているdockerイメージでのlambda起動を試してみた。
結果
起動した。lambdaの設定が問題というわけではない。コンテナイメージが悪いことを確定させる。
切り分け2
切り分け1をベースにrequirements.txt
を問題発生時のrequirements.txt
に変えてbuild後に実行した。
結果
再現した。importしなくても導入するパッケージ(pip install)に問題があるという事が分かった。
切り分け3
切り分け2をベースにrequirements.txt
に少しずつパッケージを増やしてNGになるパッケージを見つける
Discussion