我有一个来自 aws chime sdk 的演示代码,该代码位于 lambda 函数上,并由 /join 的后请求调用。如果不受影响,它可以完美运行,但是当我添加几行代码时,api 网关的响应是 502“格式错误的 Lambda 代理响应”。即使 var finalResult
为真,换句话说,我不需要更改将返回的响应,它返回格式错误的响应。
但是如果我注释掉我的代码,一切都会恢复正常。如果我使用相同的代码,响应如何格式错误?我只是在返回响应之前添加一个任务。这里发生了什么?
更新 - 我的全部代码:
exports.join = async(event,context) => {
const query = event.queryStringParameters;
if (!query.title || !query.name || !query.region) {
return response(400,'application/json',JSON.stringify({error: 'Need parameters: title,name,region'}));
}
let finalResult=false;
let dataString = '';
var re = /PHPSESSID=/gi;
var str = event.headers.Cookie;
var newstr = str.replace(re,'');
const jsonResp = await new Promise((resolve,reject) => {
const req = https.get("url/"+query.title+'@'+newstr,function(res) {
res.on('data',chunk => {
dataString += chunk;
});
res.on('end',async () => {
console.log('Passing here dataString => '+JSON.parse(dataString).status);
if(dataString!='' && JSON.parse(dataString).status===1){
console.log('Starting to create a meeting ');
let meeting = await getMeeting(query.title);
if (!meeting) {
const request = {
ClientRequestToken: uuidv4(),MediaRegion: query.region,ExternalMeetingId: query.title.substring(0,64),Tags: [{ Key: 'Department',Value: 'RND'}]
};
console.info('Creating new meeting: ' + JSON.stringify(request));
meeting = await chime.createMeeting(request).promise();
// Store the meeting in the table using the meeting title as the key.
await putMeeting(query.title,meeting);
}
console.info('Creating new meeting: ' + JSON.stringify(meeting));
// Create new attendee for the meeting
console.info('Adding new attendee');
const attendee = await chime.createAttendee({
// The meeting ID of the created meeting to add the attendee to
MeetingId: meeting.Meeting.MeetingId,ExternalUserId: `${uuidv4().substring(0,8)}#${query.name}`.substring(0,}).promise();
console.log("Creating Attendee => "+JSON.stringify(attendee));
resolve({"statusCode":200,"contentType":"application/json","body": JSON.stringify({JoinInfo: { Meeting: meeting,Attendee: attendee }}) });
}
else{
reject({"statusCode":400,"contentType": "application/json","body": JSON.stringify({error: "access denied"})});
}
});
});
req.on('error',(e) => {
console.log("request error => "+e.message);
reject({"statusCode":400,"body": JSON.stringify({error: "request error"})})
});
}).catch(function(erro){ console.log(erro.message); });
return jsonResp;
};
API 网关响应:
...
Mon Aug 02 03:48:03 UTC 2021 : Endpoint response headers: {Date=Mon,02 Aug 2021 03:48:03 GMT,Content-Type=application/json,Content-Length=1249,Connection=keep-alive,x-amzn-RequestId=eb74a980-5855-45f0-ac8a-225b0491f844,x-amzn-Remapped-Content-Length=0,X-Amz-Executed-Version=$LATEST,X-Amzn-Trace-Id=root=1-61076aee-e4081186e3e6583b876db7ca;sampled=0}
Mon Aug 02 03:48:03 UTC 2021 : Endpoint response body before transformations: {"statusCode":200,"body":"{\"JoinInfo\":{\"Meeting\":{\"Meeting\":{\"MeetingId\":\"d7da9893-470e-4cba-839c-9c6b4e230706\",\"ExternalMeetingId\":\"441cbe97-f344-11eb-957b-02adc802a03d\",\"MediaPlacement\":{\"AudioHostUrl\":\"2c9ff0da8a3961a1f10fc982bede14cf.k.m3.uw2.app.chime.aws:3478\",\"AudioFallbackUrl\":\"wss://haxrp.m3.uw2.app.chime.aws:443/calls/d7da9893-470e-4cba-839c-9c6b4e230706\",\"ScreenDataUrl\":\"wss://bitpw.m3.uw2.app.chime.aws:443/v2/screen/d7da9893-470e-4cba-839c-9c6b4e230706\",\"ScreenSharingUrl\":\"wss://bitpw.m3.uw2.app.chime.aws:443/v2/screen/d7da9893-470e-4cba-839c-9c6b4e230706\",\"ScreenViewingUrl\":\"wss://bitpw.m3.uw2.app.chime.aws:443/ws/connect?passcode=null&viewer_uuid=null&X-BitHub-Call-Id=d7da9893-470e-4cba-839c-9c6b4e230706\",\"SignalingUrl\":\"wss://signal.m3.uw2.app.chime.aws/control/d7da9893-470e-4cba-839c-9c6b4e230706\",\"TurnControlUrl\":\"https://ccp.cp.ue1.app.chime.aws/v2/turn_sessions\"},\"Med [TRUNCATED]
Mon Aug 02 03:48:03 UTC 2021 : Execution failed due to configuration error: Malformed Lambda proxy response
Mon Aug 02 03:48:03 UTC 2021 : Method completed with status: 502
CloudWatch 日志:
START RequestId: eb74a980-5855-45f0-ac8a-225b0491f844 Version: $LATEST
2021-08-02T03:48:01.602Z eb74a980-5855-45f0-ac8a-225b0491f844 INFO Entrou no end chunk dataString => 1
2021-08-02T03:48:01.603Z eb74a980-5855-45f0-ac8a-225b0491f844 INFO Ja ta criando a meeting
2021-08-02T03:48:03.033Z eb74a980-5855-45f0-ac8a-225b0491f844 INFO Creating new meeting:
{
"Meeting": {
"MeetingId": "d7da9893-470e-4cba-839c-9c6b4e230706","ExternalMeetingId": "441cbe97-f344-11eb-957b-02adc802a03d","MediaPlacement": {
"AudioHostUrl": "2c9ff0da8a3961a1f10fc982bede14cf.k.m3.uw2.app.chime.aws:3478","AudioFallbackUrl": "wss://haxrp.m3.uw2.app.chime.aws:443/calls/d7da9893-470e-4cba-839c-9c6b4e230706","ScreenDataUrl": "wss://bitpw.m3.uw2.app.chime.aws:443/v2/screen/d7da9893-470e-4cba-839c-9c6b4e230706","ScreenSharingUrl": "wss://bitpw.m3.uw2.app.chime.aws:443/v2/screen/d7da9893-470e-4cba-839c-9c6b4e230706","ScreenViewingUrl": "wss://bitpw.m3.uw2.app.chime.aws:443/ws/connect?passcode=null&viewer_uuid=null&X-BitHub-Call-Id=d7da9893-470e-4cba-839c-9c6b4e230706","SignalingUrl": "wss://signal.m3.uw2.app.chime.aws/control/d7da9893-470e-4cba-839c-9c6b4e230706","TurnControlUrl": "https://ccp.cp.ue1.app.chime.aws/v2/turn_sessions"
},"MediaRegion": "us-west-2"
}
}
2021-08-02T03:48:03.033Z eb74a980-5855-45f0-ac8a-225b0491f844 INFO Adding new attendee
2021-08-02T03:48:03.361Z eb74a980-5855-45f0-ac8a-225b0491f844 INFO Createing Attendee =>
{
"Attendee": {
"ExternalUserId": "ab953cd5#username","AttendeeId": "63146cc4-fa1d-e3d5-e0c9-f1efa40cd64e","JoinToken": "NjMxNDZjYzQtZmExZC1lM2Q1LWUwYzktZjFlZmE0MGNkNjRlOmYyZTg3M2QxLTliOWQtNDNkYi05NTBjLWU1YmFmOGFjNTIzZg"
}
}
END RequestId: eb74a980-5855-45f0-ac8a-225b0491f844
REPORT RequestId: eb74a980-5855-45f0-ac8a-225b0491f844 Duration: 4496.03 ms Billed Duration: 4497 ms Memory Size: 128 MB Max Memory Used: 91 MB Init Duration: 610.10 ms