2017-09-06 50 views
1

錯誤而失敗:lambda函數與無法導入模塊「指數」

Unable to import module 'index': Error 
at Function.Module._load (module.js:417:25) 
at Module.require (module.js:497:17) 
at require (internal/module.js:20:19) 
at Object.<anonymous> (/var/task/node_modules/slack-incoming-webhook/lib/index.js:3:19) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 

通過這樣做我的代碼看起來是沒有問題的它與鬆弛傳入-網絡掛接節點模塊的問題,不過這條線看起來完全正常。

var SlackClient = require('./client'); 

我試圖4個不同的包現在(請求,HTTP,節點網絡掛接現在鬆弛傳入-網絡掛接),並且它們都與在節點的模塊代碼失敗。我非常困惑,因爲我可以讓代碼在我自己的計算機上和Amazon Linux AMI EC2實例上運行(運行相同的節點版本)

所有代碼都被壓縮並使用aws-cli和I發送到lambda已經在lambda上部署了node.js代碼,沒有任何問題(alexa技能)。

我已經嘗試npm安裝在ec2實例上,我已經嘗試了幾個不同的包,我已經得出結論,lambda中必須存在某種配置錯誤,但是我找不到什麼。有人可以指點我在正確的方向...

這裏是我的代碼,如果有人也好奇拉姆達觸發器是aws iot按鈕。

const slack = require('slack-incoming-webhook'); 
const send = slack({ 
    url: 'https://hooks.slack.com/....' 
}); 

exports.handler = function() 
{ 
    send(process.env.company + ' has pushed their panic button! PANIC! PANIC! PANIC!'); 
}; 

回答

2

這是我在許多帖子中看到的常見問題。大多數情況下,這是壓縮造成問題的文件的方式。相反荏苒的文件夾,您必須選擇所有文件和壓縮它像下面,

enter image description here

+0

謝謝你,這是很奇怪的,因爲當我編寫我的Alexa的技能我在完全相同的方式和Alexa技能作品拉鍊拉上。 – user2710382

0

我只想參考使用的Apex(http://apex.run/)。 與AWS Lambda一起使用的非常多的awsm無服務器框架。一旦設置完成,不需要手動壓縮。

只需執行幾個命令:

  1. 頂點創建(創建拉姆達)
  2. 頂點部署(部署到您的AWS區域,荏苒無需手動)
  3. 頂點調用從調用它你的終端。

感謝