AWS Api-邮递员网关错误 500/api 网关测试成功

AWS Api-Gateway error 500 on postman / success on api gateway test

我在 api 网关中遇到了 lambda 集成的奇怪问题(尝试过代理也有同样的问题)

lambda 首先命中 AppSync,然后 returns JSON 内容出错或 XLXS 文件成功。

在 API 网关测试控制台上进行测试时,它返回状态 200 和预期的二进制结果。但是当我通过邮递员在外部尝试时它失败了。

更多信息:

集成类型:Lambda

成功响应:

response = buffer.toString("base64");

错误响应:

response= JSON.stringify(err);

无服务器api网关设置:

exportXls: 
handler: ./src/apiGatewayLambdas/exportxls/exportXls.handler
role:  AppSyncLambdaRole 
events:
    - http:
        path: /api/exportxls
        method: post
        integration: lambda

        contentHandling: CONVERT_TO_BINARY

显然,带有 lambda 或代理集成的 Apigateway 将正文编码为 base64。所以我将 lambda 更改为

let buffer = new Buffer(_event.body, "base64");
let body = buffer.toString("ascii");
body = JSON.parse(body);

一切都按预期进行。