创建AWS lambda函数感到痛苦,当我将相同的服务从GCF移植到lambda时,我能够轻松地使用Google Cloud Function部署相同的微服务,并且处理函数有一些变化,例如aws lambda中的上下文并已部署项目的.zip。它开始抛出如下所示的未知错误。 lambda函数在本地环境中运行良好,
{
"errorMessage": "callback called with Error argument, but there was a problem while retrieving one or more of its message, name, and stack"
}
并且日志显示代码开始的父脚本中的语法错误,但是我通过运行 node index.js 确认的index.js中没有语法错误,无论如何我在底部附加了index.js的代码片段
START RequestId:7260c7a9-0adb-11e7-b923-aff6d9a52d2d版本: $ LATEST模块中的语法错误' index':SyntaxError END RequestId:7260c7a9-0adb-11e7-b923-aff6d9a52d2d
我开始缩小导致问题的软件范围,我已经删除了所有依赖项并逐个开始包含并且每次上传zip时运行lambda并最终找到导致问题的罪魁祸首< strong>导致问题的是phantomjscloud。
当我包含const phantomJsCloud = require('phantomjscloud')
时,它会抛出该错误,即使我的npm_modules包含了phantomjscloud模块。在aws lambda和phanthomjscloud之间是否有任何已知的故障,不知道如何解决这个问题,如果你觉得我错过了任何事情,请随时询问任何信息。
此处代码运行良好,不包括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时来自aws lambda函数的错误消息:
答案 0 :(得分:0)
AWS使用不支持phantomjscloud的节点版本4.3,这就是它仅适用于具有6.9.2的运行时环境的google云功能的原因,现在由作者修复,如果你有任何机会看到这个答案你可能正在使用phantomjscloud不支持的其他一些节点版本,引发github问题解决了这个问题