我面临着一个奇怪的问题,在api网关中的lambda集成(尝试代理也是同样的问题)。
lambda首先点击AppSync并在错误时返回JSON内容或成功时返回XLXS文件。
当我在API网关测试控制台测试时,它带回了状态200和二进制结果,正如我所期望的那样。
更多信息。
Intergration type : 兰姆达
成功回复: 。
response = buffer.toString("base64");
错误响应。
response= JSON.stringify(err);
Serverless apigateway setup:
exportXls:
handler: ./src/apiGatewayLambdas/exportxls/exportXls.handler
role: AppSyncLambdaRole
events:
- http:
path: /api/exportxls
method: post
integration: lambda
contentHandling: CONVERT_TO_BINARY
显然,Apigateway与lambda或代理集成编码身体为base64。
let buffer = new Buffer(_event.body, "base64");
let body = buffer.toString("ascii");
body = JSON.parse(body);
一切都按预期进行。