【问题标题】:Sub callback in NodeJS for AWS LambdaAWS Lambda 的 NodeJS 中的子回调
【发布时间】:2017-05-20 08:41:13
【问题描述】:

我的 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 有它的值,但下一个回调永远不会返回,我的函数超时

【问题讨论】:

    标签: node.js api amazon-web-services lambda


    【解决方案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 日志。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-13
    • 2017-11-13
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多