2017-03-23 10 views
1

私は、AWSラムダファンクションを作成しました。これは、APIゲートウェイを使用してdynamoDBテーブルにputItemを挿入するためのものです。aws lambda関数に外部モジュールを追加するには?

ラムダ関数では、userIdを作成するためのモジュールを追加しました UUID。私はインラインコードでラムダ関数を作成しました。

は今私の問題は、私は、そのため

外部モジュール「『UUID』をモジュールが見つかりません」、エラーを取得しています。 だから、誰も私がこの問題を理解するのを助けることができますか? このモジュールをラムダ関数に追加して使用できますか?

以下は私のラムダ関数である - ここで

'use strict'; 
const uuid = require('uuid'); 
var AWS = require('aws-sdk'); 
var dynamodb = new AWS.DynamoDB(); 

exports.handler = function(event, context) { 

    var tableName = "SiplAwsAPI_users"; 
    var datetime = new Date().getTime().toString(); 

    dynamodb.putItem({ 
     "TableName": tableName, 
     "Item": { 
      "userId": {"S": uuid.v1()}, 
      "timedate": {"S": datetime}, 
      "userName": {"S": event.userName}, 
      "userPassword": {"S": event.userPassword}, 
     } 
    }, function(err, data) { 
     if (err) { 
      var response= {"response":"false",              "message":JSON.stringify(err.message, null, ' '),"data":JSON.stringify(err.statusCode, null, ' ')}; 
      context.succeed(response); 
     } else { 
      //console.log('Dynamo Success: ' + JSON.stringify(data, null, ' ')); 
      var response= {"response":"true", "message":"Register Successfully","data":JSON.stringify(data, null, ' ')}; 
      context.succeed(response); 
     } 
    }); 

}

エラー -

{ 
"errorMessage": "Cannot find module 'uuid'", 
"errorType": "Error", 
"stackTrace": [ 
"Function.Module._load (module.js:276:25)", 
"Module.require (module.js:353:17)", 
"require (internal/module.js:12:17)", 
"Object.<anonymous> (/var/task/index.js:3:14)", 
"Module._compile (module.js:409:26)", 
"Object.Module._extensions..js (module.js:416:10)", 
"Module.load (module.js:343:32)", 
"Function.Module._load (module.js:300:12)", 
"Module.require (module.js:353:17)" 
] 
} 
+0

こんにちはRahul、あなたはインラインエディタを使いましたか? – Ashan

+0

はい私はインラインエディタを使用していますので、aw-sdkを好きにしたい、 どうすれば別のモジュール名uuidを追加できますか? –

答えて

2

は、NPMの依存関係を含めるには、あなたがアップロード機能を使用する必要があります。このためには、ディレクトリを作成し、すべての依存関係を含めて圧縮する必要があります。あなたはAWSラムダランタイムがNode.jsの6.10に設定されている場合は、UUIDモジュールは、.zipファイルをアップロードすることなく、ロードされますserverless framework

+0

ご意見ありがとうございました 最初の解決策が得られたら、必要なモジュールを使用して私のプロジェクト用のジップを作成しました。アップロードした後のバス、 それに続くエラー。 { "にErrorMessage": "モジュール 'は/ var /タスク/インデックス' を見つけることができません"、 "ERRORTYPE": "エラー"、 "スタックトレース":[ 「Function.Module._load(module.js:276 :25)」、 "Module.require(module.js:353:17)"、 は "(内部/ module.jsを必要とする:12:17)" ] –

+0

}ねえ、私は 、それを自分で解決ファイル名を "index.js"に変更した後、あなたの助けをありがとう –

0

の使用を検討することができますDevOpsチームのこのプロセスを簡素化するために

。ランタイムがNode.js 4.3の場合、zipにuuidをバンドルしてアップロードする必要があります。

関連する問題