쿼리 문자열 파라미터를 백엔드 Lambda 함수 또는 HTTP 엔드포인트에 전달하도록 API Gateway REST API를 구성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 1월 6일

쿼리 문자열 파라미터를 백엔드 AWS Lambda 함수와 HTTP 엔드포인트에 전달하려면 Amazon API Gateway REST API가 필요합니다. 어떻게 해야 합니까?

간략한 설명

쿼리 문자열 파라미터를 백엔드 Lambda 함수에 전달하도록 REST API를 구성하려면 Lambda 사용자 지정 통합을 사용합니다.

쿼리 문자열 파라미터를 HTTP 엔드포인트에 전달하려면 HTTP 사용자 지정 통합을 사용합니다.

중요: 입력 데이터가 통합 요청 페이로드로 제공되는지 확인합니다. 매핑 템플릿을 사용하여 페이로드를 제공하는 것이 가장 좋습니다. 자세한 내용은 메서드와 통합 간의 요청 및 응답 페이로드 매핑을 참조하세요.

해결 방법

쿼리 문자열 파라미터를 백엔드 Lambda 함수에 전달

1.    API Gateway 콘솔을 연 다음 API를 선택합니다.

2.    [리소스(Resources)] 창에서 구성된 HTTP 메서드를 선택합니다.

참고: API에 대해 구성된 HTTP 메서드가 두 개 이상 있는 경우 각 메서드에 대해 2~15단계를 반복합니다.

3.    [메서드 실행(Method Execution)] 창에서 [메서드 요청(Method Request)]을 선택합니다.

4.    [URL 쿼리 문자열 매개 변수(URL Query String Parameters)] 드롭다운을 확장한 다음 [쿼리 문자열 추가(Add query string)]를 선택합니다.

5.    [이름(Name)] 필드에 pet을 입력한 다음 확인 표시 아이콘을 선택합니다.

6.    [필수(Required)] 확인란을 선택합니다.

7.    [메서드 실행(Method Execution)] 창을 선택합니다.

8.    [통합 요청(Integration Request)]을 선택합니다.

9.    [매핑 템플릿(Mapping Templates)] 드롭다운을 선택한 다음 [매핑 템플릿 추가(Add mapping template)]를 선택합니다.

10.    [콘텐츠 유형(Content-Type)] 필드에 application/json을 입력한 다음 확인 표시 아이콘을 선택합니다.

11.    나타나는 팝업에서 [예, 이 통합 보안(Yes, secure this integration)]을 선택합니다.

12.    [요청 본문 패스스루(Request body passthrough)]에서 [정의된 템플릿이 없는 경우(권장)(When there are no templates defined (recommended))]를 선택합니다.

13.    매핑 템플릿 편집기에서 기존 스크립트를 복사하고 다음 코드로 바꿉니다.

{
     "pet": "$input.params('pet')"
}

참고: 자세한 내용은 API Gateway 매핑 템플릿 및 액세스 로깅 변수 참조를 참조하세요.

14.    [저장(Save)]을 선택한 다음 [API 배포(Deploy the API)]를 선택합니다.

15.    API의 새 엔드포인트를 테스트하려면 다음 curl 명령을 실행합니다.

curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/lambda-non-proxy?pet=dog

중요: curl 명령에 쿼리 문자열 파라미터 pet=dog가 있는지 확인합니다.

HTTP 엔드포인트에 쿼리 문자열 파라미터 전달

1.    API Gateway 콘솔을 연 다음 API를 선택합니다.

2.    [리소스(Resources)] 창에서 구성된 HTTP 메서드를 선택합니다.

참고: API에 대해 구성된 HTTP 메서드가 두 개 이상 있는 경우 각 메서드에 대해 2~10단계를 반복합니다.

3.    [메서드 실행(Method Execution)] 창에서 [메서드 요청(Method Request)]을 선택합니다.

4.    [URL 쿼리 문자열 매개 변수(URL Query String Parameters)] 드롭다운을 확장한 다음 [쿼리 문자열 추가(Add query string)]를 선택합니다.

5.    [이름(Name)] 필드에 type을 입력하고 확인 표시 아이콘을 선택합니다.

6.    [메서드 실행(Method Execution)] 창을 선택합니다.

7.    [통합 요청(Integration Request)]을 선택합니다.

8.    [URL 쿼리 문자열 파라미터(URL Query String Parameters)] 섹션을 확장합니다.

참고: 기본적으로 메서드 요청 쿼리 문자열 파라미터는 같은 이름의 통합 요청 쿼리 문자열 파리미터에 매핑됩니다. 메서드 요청 파라미터를 다른 통합 요청 파라미터에 매핑하려면 기존 통합 요청 파라미터를 삭제합니다. 그런 다음 원하는 메서드 요청 파라미터 매핑 식을 사용하여 새 쿼리 문자열을 추가합니다.

9.    [저장(Save)]을 선택한 다음 [API 배포(Deploy the API)]를 선택합니다.

10.    API의 새 엔드포인트를 테스트하려면 다음 curl 명령을 실행합니다.

curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/http-endpoint?pet=dog

중요: curl 명령에 쿼리 문자열 파라미터 pet=dog가 있는지 확인합니다.