我有一个 lambda 函数,该函数确实会返回音频缓冲区, 当我从代码中调用 lambda 时,它可以正常工作,但是当我在ALB后面调用 lambda 时,出现错误-
502错误的网关
// 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,
}),
};
};
答案 0 :(得分:2)
根据JSON格式,您的Op.contains
参数似乎不正确。
这怎么办?
return
答案 1 :(得分:1)
您有isBase64Encoded: true
,但应将其设置为false
。
唯一要将此参数设置为true
的情况是 entire response.body
是base64编码的,并且您希望平衡器在将其返回浏览器之前对其进行解码