2015-06-04 29 views
8

Tôi đang cố gắng gửi một yêu cầu đơn giản với aws lambda.ví dụ node.js đơn giản trong aws lambda

cấu trúc mô-đun của tôi là như sau:

mylambda 
|-- index.js 
|-- node_modules 
| |-- request 

Tôi nén tập tin lên và nó được tải lên lambda.

Sau đó, tôi gọi nó và trả về lỗi sau. "errorMessage": "Cannot find module 'index'"

Dưới đây là nội dung của index.js nộp

var request = require('request'); 

exports.handler = function(event, context) { 

    var headers = { 'User-Agent': 'Super Agent/0.0.1', 'Content-Type': 'application/x-www-form-urlencoded' } 

    // Configure the request 
    var options = { 
     url: 'https://myendpoint', 
     method: 'POST', 
     headers: headers, 
     form: {'payload': {"text":""} } 
    } 

    // Start the request 
    request(options, function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(body) 
     } 
    }) 

    console.log('value1 =', event.key1); 
    context.succeed(event.key1); // Echo back the first key value 
}; 

Any help is appreciated, Cảm ơn

+0

Giá trị "Handler" của bạn trong cấu hình chức năng Lambda là gì? –

+0

index.handler, Mã chạy tốt và exectues khi tôi loại bỏ các cuộc gọi đến mô-đun yêu cầu –

Trả lời

7

Tất cả làm việc bây giờ, tôi đã phải tăng Timeout (s) giây ở cao cấp cài đặt, vì mất hơn 3 giây.

Ngoài ra, tôi phải đảm bảo các mô-đun nút của mình đã được cài đặt chính xác. Tôi đã làm hỏng mô-đun yêu cầu khi cố gắng tìm ra điều gì sai.

Để cài đặt lại mô-đun, tôi đã xóa rồi cài đặt lại yêu cầu.

  • xóa node_modules
  • npm init
  • thêm dependancies "request" : "*" trong package.json,
  • npm install. Nén zip và tải lên, tất cả đang hoạt động. :)
2

Bạn chỉ phải nén và tải lên thư mục con chứ không phải thư mục gốc. Bạn phải nén các thư mục sau theo ví dụ của mình, sau đó tải lên:

|-- index.js 
|-- node_modules 
    |-- request