我的AWS Lambda如何对某些外部服务进行API调用并将输出返回给调用该函数的用户?
我的代码看起来像这样:
module.exports.oauth_callback = (event, context, callback) => {
oauth2.authorizationCode.getToken({
redirect_uri: 'https://' + event.headers.Host + event.requestContext.path
}).then(results => {
callback(null, {statusCode: 200, body: JSON.stringify(results)});
});
};
有了这个,我收到一个500 Internal Error
,因为我相信在返回结果之前lambda函数正在退出。
编辑案例2: 实际上在我添加另一个回调的情况下:
return oauth2.authorizationCode.getToken({
code: code,
}).then(results => {
createFirebaseAccount(results).then(token => {
const template = signInFirebaseTemplate(token);
return callback(null, { statusCode: 200, body: template.toString() });
});
});
};
我的变量template
有它的值,但下一个回调永远不会返回,我的函数超时
答案 0 :(得分:1)
我认为您可能需要从getToken()
返回您的承诺,如下所示:
module.exports.oauth_callback = (event, context, callback) => {
return oauth2.authorizationCode.getToken({
redirect_uri: 'https://' + event.headers.Host + event.requestContext.path
}).then(results => {
callback(null, {statusCode: 200, body: JSON.stringify(results)});
});
};
如果这不起作用,请检查Lambda监控标签下的CloudWatch日志。