タイトルが説明しているように、次のエラーが表示されます。
{
"errorMessage": "Cannot find module 'index'",
"errorType": "Error",
"stackTrace": [
"Function.Module._resolveFilename (module.js:338:15)",
"Function.Module._load (module.js:280:25)",
"Module.require (module.js:364:17)",
"require (module.js:380:17)"
]
}
-lambda-function-in-aws-from-Zip-fileの作成 および simple-node-js- example-in-aws-lambda
私のindex.jsハンドラ関数は次のようになります:
exports.handler = function(event, context) {
上記の2つの回答で述べられていること以外に、この問題を引き起こしている可能性があるものは何ですか?私は両方のソリューションを試しましたが、実行できない理由を念頭に置いて、より多くのメモリを関数に割り当てました。
編集-試してみるために、元のコードのさらにシンプルなバージョンを作成しましたが、次のようになりました。
var Q = require('q');
var AWS = require('aws-sdk');
var validate = require('lambduh-validate');
var Lambda = new AWS.Lambda();
var S3 = new AWS.S3();
theHandler = function (event, context) {
console.log =('nothing');
}
exports.handler = theHandler();
そして、まだ同じエラーで動作しませんか?
フォルダーlambda-create-timelapseの内容を圧縮してアップロードしてみてください。フォルダ自体ではありません。
私はこの問題に何度か出くわしましたが、これは本当にあなたが想定しているようなコンテンツだけでなく、フォルダを圧縮することに関係しています。
端末から作業する人のために...
.jsファイルが置かれているディレクトリ内で、次を実行します。
Zip -r ../zipname.Zip *
*
は、このフォルダー内のすべてのコンテンツを圧縮するようにクライアントに指示しています、../zipname.Zip
は、ファイルに名前を付けるように指示していますzipname.Zip
そして、この現在のディレクトリのすぐ外側に配置します。
しばらく前に同じ問題が発生しました-コードを再フォーマットしました。
function lambdafunc1(event, context) {
...
...
...
}
exports.handler = lambdafunc1
正しいLambda
関数宣言は次のようになります。
var func = function(event, context) {
...
};
exports.handler = func;
index.js
ファイルの適切な実行を妨げる他の構文エラーがある可能性があります。別のファイルを使用してindex.js
を独自のモジュールとして使用して、コードをローカルで実行してみてください。
この問題は、ハンドラーが最初のレベルでZipに配置できない場合に発生します。そのため、このようなエラーが表示された場合は、ファイルが展開フォルダーの最初のレベルにあることを確認してください。
これを修正するには、ファイルを含むフォルダーではなくファイルを圧縮します。