🌟

Lambdaの不可解なエラーについて

2024/04/17に公開

問題概要

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