2017-03-17 106 views
1

創建AWS lambda函數感覺很痛苦,當我將相同的服務從GCF移植到lambda時,我能夠輕鬆地使用Google Cloud Function部署相同的微服務,並且處理函數發生了一些變化像aws lambda中的上下文一樣,並部署了項目的.zip。它開始拋出一個未知的錯誤,如下所示。拉姆達功能運作良好的局部環境,Phantomjscloud不能使用aws lambda nodejs

{ 
    "errorMessage": "callback called with Error argument, but there was a problem while retrieving one or more of its message, name, and stack" 
} 

,並表示在代碼開始父腳本語法錯誤日誌,但在index.js沒有語法錯誤,我已經運行證實節點index.js,我重視index.js的代碼片段在底部

START的requestId任何方式:7260c7a9-0adb-11E7-b923-aff6d9a52d2d版本:在模塊「指數 $最新的語法錯誤':SyntaxError END RequestId:7260c7a9-0adb-11e7-b923-aff6d9a52d2d

我開始縮小的軟件,是造成問題,我已刪除了所有的依賴,並開始包括一個接一個,每次跑拉姆達上傳的zip終於發現,導致罪魁禍首問題,它是phantomjscloud導致問題。

當我包括const phantomJsCloud = require('phantomjscloud')它拋出該錯誤,甚至我的npm_modules包含phantomjscloud模塊。在aws lambda和phanthomjscloud之間是否有任何已知的故障,不知道如何解決這個問題,如果你覺得我錯過了任何事情,隨時提問任何信息。

在這裏,如果沒有包括從AWS lambda函數const phantomJsCloud = require('phantomjscloud')

global.async = require('async'); 
global.ImageHelpers = require('./services/ImageHelpers'); 
global.SimpleStorage = require('./services/SimpleStorage'); 
global.uuid = require('uuid'); 
global.path = require('path'); 

const phantomJsCloud = require('phantomjscloud') 
const aadhaarController = require('./controllers/Aadhaar') 
exports.handler = (event, context) => { 
    // TODO implement 
    aadhaarController.generateAadhaarCard(event,context); 
}; 

錯誤消息,當被包括phantomjscloud工作良好的代碼:

Error message from aws lambda function when phantomjscloud is included

+0

只是好奇:您是否使用Lambda將API請求驅動到phantomjscloud.com? – Vaviloff

+0

@Vaviloff,是的,我正在這樣做 –

+0

你使用的節點和npm的版本是什麼? phantomjscloud需要6.x,我有一種感覺,你正在使用別的東西? – JasonS

回答

0

AWS使用節點版本4.3,其phantomjscloud不支持,這就是它只與谷歌雲功能運行的原因,它具有6.9.2的運行時環境,現在它由作者修復,無論如何,如果你看到你可能會使用phantomjscloud不支持的一些其他版本的節點,引發github問題解決了問題