Amazon API Gateway API에서 Lambda 함수를 비동기식으로 호출하려면 어떻게 해야 합니까?

2분 분량
0

Amazon API Gateway API에 대해 AWS Lambda 함수를 동기가 아닌 비동기로 호출하고 싶습니다.

해결 방법

REST API

Lambda 비프록시 통합에서는 기본적으로 백엔드 Lambda 함수가 동기식으로 호출됩니다. Lambda 호출 유형으로 **'이벤트(Event)'**를 지정하여 Lambda 비프록시 통합이 비동기식으로 호출되도록 Lambda 함수를 구성할 수 있습니다.

1.    API Gateway 콘솔을 열고 API를 선택한 다음 REST API를 선택합니다.

2.    **리소스(Resources)**에서 GET을 선택한 다음 **통합 요청(Integration Request)**을 선택합니다.

3.    **통합 유형(Integration type)**에서 **Lambda 함수(Lambda Function)**를 선택합니다.

4.    **HTTP 헤더(HTTP Headers)**를 확장한 다음 **헤더 추가(Add header)**를 선택합니다.

5.    **이름(Name)**에 X-Amz-Invocation-Type을 입력합니다.

6.    **매핑 출처(Mapped from)**에 **'이벤트(Event)'**를 입력합니다.

7.    REST API를 재배포합니다.

비동기식 또는 동기식 중 하나를 선택할 수 있는 옵션을 사용하여 Lambda 함수를 호출하려면 InvocationType 헤더를 추가합니다.

1.    API Gateway 콘솔을 열고 API를 선택한 다음 REST API를 선택합니다.

2.    **리소스(Resources)**에서 GET을 선택한 다음 **메서드 요청(Method Request)**을 선택합니다.

3.    **요청 검사기(Request Validator)**에서 편집 아이콘을 선택하고 드롭다운 목록을 선택한 다음 **쿼리 문자열 파라미터 및 헤더 검증(Validate query string parameters and headers)**을 선택합니다.

4.    업데이트 아이콘을 선택하여 변경 사항을 저장합니다.

5.    **HTTP 헤더(HTTP Headers)**를 확장한 다음 **헤더 추가(Add header)**를 선택합니다.

6.    **이름(Name)**에 InvocationType을 입력한 다음 **필수(Required)**를 선택합니다.

7.    **통합 요청(Integration Request)**에서 **HTTP 헤더(HTTP Headers)**를 확장한 다음 **헤더 추가(Add header)**를 선택합니다.

8.    **이름(Name)**에 X-Amz-Invocation-Type을 입력합니다.

9.     **매핑 출처(Mapped from)**에 method.request.header.InvocationType을 입력합니다.

10.    REST API를 재배포합니다.

클라이언트는 비동기식 호출을 위한 API 요청에 InvocationType: Event 헤더를 포함하거나 동기식 호출을 위한 InvocationType: RequestResponse를 포함할 수 있습니다.

자세한 내용은 백엔드 Lambda 함수의 비동기식 호출 설정을 참조하세요.

HTTP API

HTTP API는 Lambda에 대한 프록시 통합만 지원합니다. HTTP API의 API Gateway 통합에는 X-Amz-Invocation-Type 헤더를 설정할 수 없습니다. 두 개의 Lambda 함수를 사용할 수 있으며 그 중 하나는 프록시 역할을 합니다.

구성 예:

HTTP API --> Invoke Lambda1 synchronously --> Invoke Lambda2 asynchronously

AWS 공식
AWS 공식업데이트됨 일 년 전