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);
一切都按预期进行。
我在 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);
一切都按预期进行。