问题描述
我正在将AWS Lambda与应用程序负载平衡器一起使用。我一直在努力弄清楚为什么我只得到了一部分内容(几个字节)。
我尝试将PDF文件作为二进制数据返回。这在本地有效,当我的应用程序部署到ec2或lambda以外的其他任何地方时都可以使用。
我已经看过这样的答案AWS Lambda fails to return PDF file
但是这些答案都在讨论关于API网关的lambda设置。我未使用API网关,但正在使用应用程序负载平衡器。有什么想法吗?
解决方法
找到了答案!我在Express中使用无服务器HTTP。我需要为返回内容类型添加二进制参数。
const serverless = require('serverless-http');
const app = require("./index");
const handler = serverless(app,{
binary: ['application/pdf']
});
exports.handler = async (event,context) => {
return await handler(event,context);
};