502 错误网关内部服务器错误 lambda 提供二进制文件

问题描述 投票:0回答:1

我正在从节点获取中获取文件,就像这样

module.exports.somelambdafunction = async (event, context, callback) => {
    const streamData = await fetch(some file url, {
          headers: {
            Authorization: `Bearer ${this.accessToken}`,
            'Content-Type': 'application/json',
          },
        });
    const buffer = await streamData.buffer(); 
    response.headers = {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET, POST',
      'Content-Type': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
      Accept: 'application/octet-stream',
      'Content-disposition': `attachment; filename=${getSpFileAttributes.LinkFilename}`,
    };
    response.body = buffer;
    response.isBase64Encoded = true;
    return response;
}

给定缓冲区我还将 isBase64Encoded 设置为 true。我正在使用无服务器来部署这个东西。但是,当调用端点时,我不断收到内部服务器错误。我在这里做错了什么?

aws-lambda serverless-framework binary-data
1个回答
0
投票

您获取的文件有多大?您检查过 Cloudwatch 中的 lambda 日志吗?我猜你的任务超时了,因为默认配置将超时设置为 3 秒之类的值。

您可以尝试从“常规配置”选项卡增加 lambda 函数的超时值。

© www.soinside.com 2019 - 2024. All rights reserved.