AWS Lambda error : Unable to import module 'index'
AWS Lambda error : Unable to import module 'index':
多くの場合、node_modulesにコードが利用したいモジュールが入っていないことでUnable to import module 'blah blah'といったエラーがでます。
コード例:
エラー例:
しかし
Hogeモジュールを確かにnpm installしてnode_modules内にそれがあるのなら、次の理由が考えられます。
LambdaにアップロードするときのZIP化の失敗/変質
これはubuntu環境からWindows環境に移したときに起きました。
わたしのマシンubuntuでフツーに使用している
のコマンドで一発でLambdaにアップロードできるのだけれど、
の、
この部分、ZIPコマンドはWindowsでは使えないということで、Windowsのコマンドプロンプトでzipコマンドを使用可能にする方法を参考にして使用可能にしたのですが、それでZIP化したLambda-Deployment.zipを
そのZIP化したファイルを覗いてみてもおかしなところはなさそうです
ちなみに、PowerShellのCompress-Archiveでなんとかしようと思いましたが、さらに迷宮入りしました。
Azureへの客引き作戦でしょうか?
ああそれね~知ってる!、という方はおねがいします
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への客引き作戦でしょうか?ああそれね~知ってる!、という方はおねがいします
コメント
コメントを投稿