AWS Lambda error : Unable to import module 'index'

AWS Lambda error : Unable to import module 'index':


AWS Lambda error : Unable to import module 'index'

多くの場合、node_modulesにコードが利用したいモジュールが入っていないことでUnable to import module 'blah blah'といったエラーがでます。

コード例:

//index.js 
let hoge = require('Hoge') 
エラー例:

Unable to import module 'Hoge': Error 
しかし module 'index'とわ!

Hogeモジュールを確かにnpm installしてnode_modules内にそれがあるのなら、次の理由が考えられます。

LambdaにアップロードするときのZIP化の失敗/変質

これはubuntu環境からWindows環境に移したときに起きました。

わたしのマシンubuntuでフツーに使用しているpackage.json、以下のように書けば、

npm run deploy

のコマンドで一発でLambdaにアップロードできるのだけれど、

//package.json 
・・・前略・・・ 
  "scripts": { 
"deploy": "aws lambda update-function-code --function-name arn:aws:lambda:ap-northeast-1:012334455667:function:auto_Hoge --zip-file fileb://Lambda-Deployment.zip", 
"predeploy": "zip -r Lambda-Deployment.zip * -x *.zip *.json *.log" 
}, 
・・・後略・・・ 
の、"predeploy": のコマンドですね、

zip -r Lambda-Deployment.zip * -x *.zip *.json *.log

この部分、ZIPコマンドはWindowsでは使えないということで、Windowsのコマンドプロンプトでzipコマンドを使用可能にする方法を参考にして使用可能にしたのですが、それでZIP化したLambda-Deployment.zipをnpm run deployでLambdaにアップロードしたところ、以上のエラーが出て使い物になりませんでした。

そのZIP化したファイルを覗いてみてもおかしなところはなさそうです

ちなみに、PowerShellのCompress-Archiveでなんとかしようと思いましたが、さらに迷宮入りしました。


Windowsだと、手作業でZIP化してコンソール画面からアップロードするしかないのが現状です。

Azureへの客引き作戦でしょうか?

ああそれね~知ってる:point_up:!、という方はおねがいします:sob:

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)