나는 기본적으로 newman (우체국의 JS 라이브러리)에서 일련의 테스트를 실행하는 nodejs 람다 함수를 가지고 있습니다. 테스트는 성공적으로 실행되지만 람다가 codepipeline.putJobSuccessResult를 사용하여 Codepipeline에 메시지를 보내려고하면 최대 호출 스택 초과 오류가 계속 발생합니다. 인쇄 된 오류 스택은 그리 길지 않습니다 (단지 6 행만 인쇄 할 수 있음).타격 람다 함수에서 초과 된 최대 호출 스택
스택 추적이 초과하는 이유와 디버깅 방법을 쉽게 이해할 수 있습니다.
관련 exports.handler
exports.handler = function(event, context) {
var jobId = event["CodePipeline.job"].id;
console.log("Triggering tests for job "+ jobId);
var putJobSuccess = function(message) {
codepipeline.putJobSuccessResult({jobId: jobId}, (err, data) => {
if (err) {
context.fail(err);
} else {
context.succeed(message)
}
});
}
var putJobFailure = function(message) {
console.log("Tests failed for job: " + jobId);
var params = {
jobId: jobId,
failureDetails: {
message: JSON.stringify(message),
type: 'JobFailed',
externalExecutionId: ""
}
}
}
var testRunnerCallback = function(response) {
if (response === 1) {
putJobFailure("Tests failed. View logs for details");
} else {
putJobSuccess("All Tests passed");
}
}
Newman.execute(collections, newmanOptions, testRunnerCallback);
}
감사
http://stackoverflow.com/questions/20936486/node-js-maximum-call-stack-size-exceeded – eenagy
는 이러한 접근 방식을 시도했다. 그러나 불행히도 소용이 없습니다. – bythe4mile
여기에 코드를 붙여주십시오. 우리가 도울 수 있도록 – eenagy