【发布时间】:2020-09-25 17:06:45
【问题描述】:
我在 api 网关中遇到了一个 lambda 集成的奇怪问题(尝试过代理以及同样的问题)
lambda 首先命中 AppSync 并在错误时返回 JSON 内容或在成功时返回 XLXS 文件。
在 API 网关测试控制台上进行测试时,它会按预期返回状态 200 和二进制结果。但是当我通过邮递员在外部尝试时它失败了。
更多信息:
集成类型:Lambda
成功响应:
response = buffer.toString("base64");
错误响应:
response= JSON.stringify(err);
无服务器apigateway设置:
exportXls:
handler: ./src/apiGatewayLambdas/exportxls/exportXls.handler
role: AppSyncLambdaRole
events:
- http:
path: /api/exportxls
method: post
integration: lambda
contentHandling: CONVERT_TO_BINARY
【问题讨论】:
-
您通过 Postman 发送什么?你检查过 Lambda 日志吗? :)
-
这是我没有收到错误日志的奇怪之处......我只看到来自测试控制台的成功日志。以及我设法在 cloudwatch 上获取的一些日志,它们都显示了 2020 年 6 月 6 日星期六 14:46:31 UTC:成功完成执行 2020 年 6 月 6 日星期六 14:46:31 UTC:方法完成,状态为:200(刚刚测试)
-
对,您是否启用了 API 网关日志,这可能会有所帮助?
-
是 lambda 执行成功后的错误:转换前的方法请求主体:[Binary Data] 由于配置错误,执行失败:无法转换请求
-
这是一个用于启用转换的无服务器插件。我也尝试将其删除并明确设置内容类型和内容处置,但出现同样的问题
标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework aws-serverless