コンテンツにスキップ

Python3.9 + AWS LambdaでRuntime.ImportModuleError

起きたこと

API Gateway + Lambda の構成でアプリを動かしていたら、API アクセス時にエラーとなってしまいました。

[ERROR] Runtime.ImportModuleError: Unable to import module 'app': cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_' (/var/task/urllib3/util/ssl_.py)
Traceback (most recent call last):

なんで?

urllib3 は標準ライブラリのため requirements.txt に記載していません。そのため、おそらく AWS 側で何かあったと考えられます。urllib3 のChangelogを見ると、最新バージョンが v1.x から v2.0 になっています。よくわかんないけど、おそらく AWS 側も v2.0 になったのが原因だと推測しました。

やったこと

requirements.txtに urllib3 を記載しました。

urllib3==1.26.15

これでとりあえず直りました。 そのうち Lambda で v2.0 で動くと思うので、定期的にチェックしていこうと思います。