実現したいこと
- Lambda上でnode.js + expressを動かしたい(API gatewayを使って関数を実行する想定です)
前提
Lambda上でnode.js + expressを動かしたいのですが、Runtime.ImportModuleError
というLambda上でテストをするとエラーが発生してしまい、動かすことができません。
アプリケーションの機能としては"Hello World"と出力するシンプルなものです。
発生している問題・エラーメッセージ
Lambda上でテスト実行時
{ "errorType": "Runtime.ImportModuleError", "errorMessage": "Error: Cannot find module 'index'\nRequire stack:\n- /var/runtime/index.mjs", "trace": [ "Runtime.ImportModuleError: Error: Cannot find module 'index'", "Require stack:", "- /var/runtime/index.mjs", " at _loadUserApp (file:///var/runtime/index.mjs:997:17)", " at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1032:21)", " at async start (file:///var/runtime/index.mjs:1195:23)", " at async file:///var/runtime/index.mjs:1201:1" ] }
該当のソースコード
index.js
js
1const express = require("express"); 2const app = express(); 3 4app.get("/", (req, res) => { 5 res.send("Hello World"); 6}); 7 8exports.handler = (event, context, callback) => { 9 const server = app.listen(3000, () => { 10 console.log("Server started"); 11 }); 12}; 13
ローカルで作成したアプリケーションをzipにしてアップロードする形式を取っています。
ローカルで行ったことは以下です。
- 作業ディレクトリを作成
npm init -y
npm install express
node_modules
ディレクトリを含めて全てzip化
これをLambdaコンソールから上記のzipを取り込み、テストを実行しています。(テストはデフォルトのままです)
試したこと
node_modulesを外したりしましたが、同様にエラーでした。
補足情報(FW/ツールのバージョンなど)
node v16.17.1
express ^4.18.2

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。