0

API 게이트웨이를 사용하여 Tomcat 백엔드를 Elastic BeansTalk에서 분리했지만 API에서 응답을 얻지 못했습니다.AWS API 게이트웨이 - 탄력적 인 콩에 대한 HTTP 프록시가 패스 스루 응답을하지 않습니다.

API 게이트웨이 콘솔을 사용하여 테스트하려고하면 통합 요청이 제대로 작동합니다. 그것은 또한 백엔드에서 잘 작동합니다. API 끝점을 사용하여 요청을 만들고 서버 로그를 확인하면 예상 한 200 응답을 제공합니다.

그러나 API 게이트웨이가 에이전트에 대한 응답을 유도하면 모든 클라이언트에서 구문 분석 할 수 없습니다. 웹 브라우저, API 테스트 도구 및 모바일 클라이언트 (iOS)를 사용해 보았습니다. 각각의 경우 에이전트는 "원시 데이터를 디코딩 할 수 없습니다"라고 알려줍니다! 나는 컬을 사용하여 엔드 포인트를 점검하고 정상적으로 작동합니다. API 게이트웨이와 Elastic BeansTalk 엔드 포인트의 응답을 비교할 때 유일한 차이점은 API 게이트웨이 응답에서 Content-Size 정보가 1 바이트 더 길다는 것입니다.

웹에서 어떤 사람들은 다른 백엔드 서비스와 다른 에이전트를 사용하여 같은 문제를 발견했습니다. 예를 들어 here은 Safari가 Flickr에 액세스하려고 할 때 발생하는 동일한 문제에 대해 알려줍니다. 이 질문에 대한 답변에서 누군가가 문제는 서버가 삽입 한 HTTP 비아 헤더와 관련이 있다고 말합니다.

API 게이트웨이의 응답 헤더를 확인했으며 실제로 응답이 Cloudfront에서 제공되었음을 알리는 Via 헤더가 있습니다. 이것이 문제인지 테스트하기 위해이 옵션을 비활성화하는 옵션을 찾았습니다. 그러나 did'nt는 발견한다!

그래서 ..

내 질문은 :

  1. 누군가가 필요하거나 같은 문제를 가지고있다?
  2. 누군가가 Via Http Header와 관련이 있는지 알 수 있습니까?
  3. API 게이트웨이에서이 헤더를 비활성화 할 수 있습니까? 예, 어떻게?
+0

API 게이트웨이에서 생성 된 SDK를 사용하고 있습니까? –

+0

아니요! 재단 패키지에서 http 세션 객체를 사용하고 있습니다. iOS SDK에 큰 문제가 있었으며 주로 포기했습니다 ... 주로 Cognito와 관련이 있습니다 ... –

답변

0

API 게이트웨이에서이 헤더를 비활성화 할 수 있습니까? 예, 어떻게?

아쉽게도 헤더를 비활성화 할 수 없습니다. EDGE이 아닌 REGIONAL 끝점 유형을 사용하면 Via 헤더가 추가되지 않지만 EDGE 끝점의 이점을 잃을 수도 있습니다.