web-dev-qa-db-ja.com

AWS Lambda関数が「モジュール 'インデックス'が見つかりません」を返していますが、構成内のハンドラーがインデックスに設定されています

タイトルが説明しているように、次のエラーが表示されます。

 {
  "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

私の設定は現在次のようになっています: enter image description here

私のファイル構造は次のとおりです: enter image description here

私の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();

そして、まだ同じエラーで動作しませんか?

28
Andrew Font

フォルダーlambda-create-timelapseの内容を圧縮してアップロードしてみてください。フォルダ自体ではありません。

49
tahsintahsin

これが他の人にとって不明確な場合、手順は次のとおりです。

ステップ1プロジェクトのフォルダーに移動し、そのフォルダーを開いて、フォルダー内にいるようにします: Folder

ステップ2Lambdaにアップロードするすべての画像を選択します: Folder with selected files

ステップ3選択したファイルを右クリックして圧縮します: Right-click menu with compress option highlighted


これにより、Lambdaにアップロードする必要がある.Zipファイルが得られます。

Archive.Zip output


これを自動化する方法はたくさんありますが、これは手動の手順です。

15
Tyler

私はこの問題に何度か出くわしましたが、これは本当にあなたが想定しているようなコンテンツだけでなく、フォルダを圧縮することに関係しています。

端末から作業する人のために...

.jsファイルが置かれているディレクトリ内で、次を実行します。

Zip -r ../zipname.Zip *

*は、このフォルダー内のすべてのコンテンツを圧縮するようにクライアントに指示しています、../zipname.Zipは、ファイルに名前を付けるように指示していますzipname.Zipそして、この現在のディレクトリのすぐ外側に配置します。

5
Michael Du

しばらく前に同じ問題が発生しました-コードを再フォーマットしました。

function lambdafunc1(event, context) {
...
...
...
}

exports.handler = lambdafunc1
2
Naveen Vijay

正しいLambda関数宣言は次のようになります。

var func = function(event, context) {
   ...
};

exports.handler = func;

index.jsファイルの適切な実行を妨げる他の構文エラーがある可能性があります。別のファイルを使用してindex.jsを独自のモジュールとして使用して、コードをローカルで実行してみてください。

0
kixorz

この問題は、ハンドラーが最初のレベルでZipに配置できない場合に発生します。そのため、このようなエラーが表示された場合は、ファイルが展開フォルダーの最初のレベルにあることを確認してください。

これを修正するには、ファイルを含むフォルダーではなくファイルを圧縮します。

0
Sushil Ojha