2017-03-17 72 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问题解决了问题