具有lambda代理抛出InternalServerError

时间:2018-06-29 01:50:16

标签: amazon-web-services aws-lambda aws-api-gateway api-gateway

我有一个简单的lambda,我正在通过具有Lambda代理集成的API网关进行操作。

这是我的lambda代码

exports.handler = main;

function main(event, context, callback) {
    console.log("This will get s3 files")
    //return "Succeed"
    var responseText = {
      message : "Succeeded"
    }
    return done(200, JSON.stringify(responseText), 'application/json', callback)
}

function done(statusCode, body, contentType, lambdaCallback, isBase64Encoded = false) {
  lambdaCallback(null, {
    statusCode: statusCode,
    isBase64Encoded: isBase64Encoded,
    body: body,
    headers: {
      'Content-Type': contentType
    }
  });
}

使用API​​ Gateway命中时,它将引发内部服务器错误。 api网关登录cloudwatch的样子-

转换前的端点响应主体:[二进制数据] 端点响应标头:{X-Amz-Executed-Version = 2,x-amzn-Remapped-Content-Length = 0,连接=保持活动状态,x-amzn-RequestId = 8d332243-7b3d-11e8-afe1-c936514725a3,内容-Length = 120,Date = Fri,2018年6月29日格林尼治标准时间,X-Amzn-Trace-Id = root = 1-5b358e4c-623f1d6069f1dc0c3c25dda4; sampled = 0,Content-Type = application / json} 由于配置错误,执行失败:无法通过base64解码正文。

如果我通过控制台测试调用lambda,则会得到正确的响应-

Response:
{
  "statusCode": 200,
  "isBase64Encoded": false,
  "body": "{\"message\":\"Succeeded\"}",
  "headers": {
    "Content-Type": "application/json"
  }
}

0 个答案:

没有答案