2
나는 탄성 콩나무 애플리케이션으로 배포되며 전면 몇 가지 프로토 타입을 웹 응용 프로그램에 역방향 HTTP 프록시로 AWS API 게이트웨이를 사용하는 것을 시도하고있다

: 각 EB 응용 프로그램이 AWS API 게이트웨이가 제대로 프록시 반대하지

구성 그것의 애플 리케이션 이름 아래에 API 게이트웨이에 매핑 예

/hello1 (API Gateway mapping) --> prototype1 EB application 
/hello2 (API Gateway mapping) --> prototype2 EB application 
... etc 

이 내가 만든 전체 매핑 :

enter image description here

API 게이트웨이는 예를 들어, 각각의 매핑의 루트 자원에 대한 요청을 처리하는 것 같다 '/'다른 하위 리소스에 대한 요청에, 그래서 모두에 대해 프록시 매핑을 설정 한 :

루트 ('/') 리소스는 정직이다 (즉, 비 욕심) 프록시 매핑 :

Root '/' resource proxy mapping 그때 나는 '마스터'

라는 이름의 단계에 API를 배포

Greedy proxy mapping under the root context

:

그런 다음 루트 컨텍스트 아래에 아무것도 욕심 프록시 매핑있다

각 프로토 타입에 액세스하려면 URL http://protos.acme.com/<stage>/<proto_name>을 얻으십시오. http://protos.acme.com/master/hello1.

문제

내가 찾는거야 그 나는 URL에 후행 슬래시를 추가하거나, 예를 들어, 특정 자원을 지정하는 경우 index.html 그러면 모든 것이 완벽하게 작동합니다.

파일 -

  • http://protos.acme.com/master/hello1/index.html 잘 작동 http://protos.acme.com/master/hello1 그러면 API 게이트웨이에서 수행 한 URL 재 작성이 작동을 멈추고 프록시 된 콘텐츠의 URL은 프로토 타입 이름을 생략 할 때 더 이상 올바르게 해결되지 않습니다. http://protos.acme.com/master/index.html.

    후행 슬래시가 생략 된 경우 동작을 구성 할 수있는 방법을 찾을 수 없으며 사용자가 항상 후행 슬래시를 기억하도록하는 것이 바람직하다고 생각하지 않습니다.

    통찰력에 감사드립니다!

    EDD

  • +0

    당신은 당신이 '비 욕심'어떤 방식으로 사용하는 통합 엔드 포인트를 공유 할 수 있습니까? 당신이 구성한 것은 그 방법이 맞다고 가정해서 작동해야합니다. –

    +0

    위의 구성이 작동하는지 테스트하고 확인했습니다. 욕심쟁이 및 비 욕심쟁이 방법 모두에 대해 끝점 URL을 어떻게 구성했는지 알려주십시오. –

    답변

    2

    I 설정 빠른 테스트 그리고 내가 명시 적으로 ANY{proxy+} 경로에 추가하여 자원 루트 경로에서 GET 방법을 정의하는 경우 작동하는 것 같다.

    api gateway proxy integration

    +0

    안녕 데이브, 귀하의 예제와 일치하도록 재구성 시도했지만 2 GET 방법을 구성한 방법을 잘 모르겠습니다. 난 당신이 HTTP를 통합으로 구성되어 있지만 프록시 등 (그리고 만약 당신이 각 경우에 어떤 URL을 구성했는지 구성되어 있다고 가정)? 감사! –

    +0

    'GET' 메소드의 경우 HTTP 프록시 통합과 URL http : // example.tld /를 사용했습니다. 'ANY' {proxy +} 경로에서는 HTTP 프록시 통합과 url 'http : //example.tld/ {proxy}'를 사용했습니다. –

    관련 문제