API 게이트웨이 프록시 요청을 사용합니다. 나는 다음 람다 함수 자체 내에서 응답을 처리 Proxy integrations cannot be configured to transform responses.
에 Integration Response
업데이트 될 것이다 Use Lambda Proxy integration
를 사용하도록 Integration Request
를 구성합니다. 예를 들어, 나는 성공적인 응답을 다음과 같은 것이다 :
context.succeed({
statusCode: 200,
headers: { 'Content-Type': 'Application/json'},
body
});
그리고 실패 할 것으로 예상의 예를 들어, 내가 가진 :
context.succeed({
statusCode: 404,
headers: { 'Content-Type': 'Application/json'},
body: JSON.stringify({'Error': error})
});
참고 : 내가 사용하는 것이 중요하다 오류 처리시 context.succeed
이 아니며 context.fail
이 아닙니다.
노드에서 로컬로 람다를 개발했으며 디버깅/테스트 기능에 lambda-local
과 lambda-tester
의 조합을 사용했습니다. 나는 lambda-tester
를 사용하여 내 단위 테스트에 대한
{
"queryStringParameters":
{
"param1": "1234567890",
"param2": "0987654321",
}
}
:
lambda-local -f ~/Desktop/lambdaNode/myNewAPI.js -e ~/Desktop/lambdaEvents/testEvent.json
예 이벤트는 다음과 같이한다 : 예를 들어, 나는 람다 이벤트를 전달하려면 다음 명령을 실행됩니다 모카와 함께 다음과 같이 npm test
와 위의
const LambdaTester = require('lambda-tester');
describe('handle my new lambda: ',() => {
it('should do exactly what I expect',() => {
return LambdaTester(myNewAPI.handler)
.event(testEvents.newLambdaEvent)
.expectSucceed((result) => {
expect(result.statusCode).to.equal(200);
});
});
});
시험을 당신이에 대한 설정이 있다면, 그렇지 않으면 단지 mocha testFile
내 경우에는 인증이 내부 API이므로 다르게 처리됩니다. 귀하의 경우, JWT가 최선의 방법이라고 생각합니다. 유감 스럽지만 그 점에 관해 더 많은 정보를 제공 할 수는 없습니다.
로컬로 개발할 수있는 방법이 있습니까? 나는 npm 패키지 lambda-local을 살펴 보았지만 람다 함수에서 http 요청을 테스트 할 방법을 찾지 못했습니다. 스크립트를 개발 한 환경은 무엇입니까? – Stretch0