lambda関数で使用するレイヤーにnumpyを入れたらエラーになった【Python】

IT

概要

lambdaで使用するnumpyをレイヤーにしようとした際にエラーになりました。
レイヤーの作成方法に関しては以下の記事に別途記載しておりますので、覗いてみてください。

発生内容

numpyを含んだレイヤーをlambda関数に反映し、テストを実施した時に、以下のエラーが発生しました。
実施バージョンは以下です。

  • Python: 3.12
  • numpy: 2.0.1

[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.

解決

以下のように解決しました。

カスタムレイヤーではなく、ARNレイヤーを使用する。


ARNを指定する。

ここで、ARNは有志の方が作成したものを利用します。
<ページ>:https://github.com/keithrozario/Klayers/?tab=readme-ov-file#list-of-arns
いくつかのライブラリが使用できますので、参考にしてみてください。今回はnumpyを取得してみます。

<ページ>のリンク先に遷移し、READMEのLIS of ARNsを確認します。
Pythonのバージョンを選択します。(今回はPython 3.12)
 

作成したlambdaがあるリージョンと、好きなARNsを選択します。
今回は東京リージョンなのでap-northeast-1、ARNsはhtmlを選択します。

numpyのarnをコピーします。

lambda関数のページに戻って、arnを貼り付け、追加をクリックします。

テスト再実行
無事にテストが通りました!


最後に

これまで脳死でカスタムレイヤー → zipアーカイブにしていたので新たな方法を発見できて良かったです。エラーは貴重な経験ですね…
ここまでお読みいただきありがとうございました!みなさまのお役に立てれば幸いです。

参考

コメント

タイトルとURLをコピーしました