ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS Lambda를 위한 동기/비동기 정리
    서버/AWS 2020. 3. 2. 15:17

     

     

    AWS Lambda 함수의 매개변수에 대해 알아보고, 이를 통해 비동기로 처리하는 방식과 동기로 처리하는 방식에 대해 알아보도록 하자.

     

    AWS Lambda의 매개변수

    AWS Lambda는 세 가지의 매개변수를 받는다.

    1. event

    이벤트 매개변수는 JSON 형식으로 구성되며, 외부에서 API를 호출할 때 생기는 이벤트를 의미한다. 예시로 HTTP에서 호출할 수도 있으며, AWS 서비스 내의 S3나 EC2에서도 호출할 수도 있다. 혹은 다른 Lambda 함수도 가능하다.

    html에서의 이벤트 핸들러와 유사하다.

     

    2. context

    컨텍스트 매개변수는 Lambda 함수가 실행되는 환경, 그리고 호출, Lambda 함수 자체에 대한 정보를 의미한다.

     

    3. callback -> 이를 활용하는 것이 비동기 함수이다.

    결과를 응답하는 비동기 함수를 의미한다. 콜백 함수는 두 가지 매개변수를 가지는 데, Error와 Response이다. 이벤트 루프가 최종적으로 비워졌을 때, 응답 혹은 에러를 호출자한테 전달한다. 여기서 응답 객체는 JSON.stringify를 통해 처리해야 한다.

     

    AWS Lambda 동기 처리

    AWS Lambda를 동기 함수처럼 처리하는 방법이 있다.

    그것이 async 키워드이다. exports.{함수명} = async (event, context)로 함수를 만들면 된다. 동기 함수의 경우엔 return 혹은 throw를 통해 응답과 에러를 처리하면 된다. 프로미스를 처리하는 방식과 비슷하다.

     

    Promise 

    프로미스의 일반적인 사용방법은 아래와 같다.

    const promise = new Promise((resolve, reject) => {
    	// 조건에 따라 resolve를 호출할 지, reject를 호출할 지에 대한 내용을 적는다.
    });
    promise.then(res => {});
    
    // new Promise에 resolve와 reject를 매개변수로 갖는 콜백함수를 넣어준다.
    // 이후에 함수 내부에서 조건에 따라 알맞는 함수(resolve, reject)를 호출하면 된다.
    ===================================================================================
    Promise.resolve(res).then(res => {});
    
    // resolve 메서드를 활용한 방식으로, promise 객체를 리턴한다.
    

     

     

     

     

    '서버 > AWS' 카테고리의 다른 글

    DynamoDB Query 공식 문서 파헤치기  (0) 2020.03.04
    AWS DynamoDB Document Client란?  (0) 2020.03.04
    AWS IAM(Identity and Access Management) 개념 정리  (0) 2020.03.03

    댓글

Designed by Tistory.