AWS ALB возвращает 502 Bad Gateway при возврате аудиобуфера из Lambda в nodejs - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть функция лямбда , которая возвращает аудио-буфер в ответ, когда я вызываю лямбда из кода, он работает нормально, но когда я вызываю лямбда за ALB, я получаю ошибку -

502 Bad Gateway

// Lambda function handler

'use strict';


module.exports.handler = async (event, context) => {
  // ALB expects following response format
  // see: https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html
  const response = {
    headers: {
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json',
    },
    isBase64Encoded: true,
    statusCode: 200,
    statusDescription: '200 OK',
  };
// getting buffer from backend api
  const answer = 'This is my audio buffer'.toString('base64');
  return {
    response,
    body: JSON.stringify({
      id: 123,
      myBuffer: answer,
    }),
  };
};

Ответы [ 2 ]

2 голосов
/ 25 апреля 2019

Ваш параметр return не соответствует формату JSON.

Как насчет этого?

  ...
  const answer = 'This is my audio buffer'.toString('base64');
  response.body = JSON.stringify({
    id: 123,
    myBuffer: answer
  });
  return response;
};
1 голос
/ 25 апреля 2019

У вас есть isBase64Encoded: true, но это должно быть установлено на false.

Единственный раз, когда вы хотите установить это значение true, это если whole response.body закодировано в base64 и вы хотите, чтобы балансировщик декодировал его перед возвратом в браузер.

...