Code States/TIL

[0525] 섹션 3. 프로젝트 - 마이크로서비스 Day 2 - Step 3(메세지를 Factory API로 전송하는 Lambda 구성 및 DLQ 추가)

ki1111m2 2023. 5. 25. 15:37

DLQ로 사용할 SQS 생성

기존 SQS에서 DLQ 선택

메시지 소비 람다 함수 생성을 위해 서버리스 템플릿 생성

메시지의 내용을 잘 읽어왔는지 확인하기 위해 console.log 작성

module.exports.handler = async (event) => {
  console.log(event)
  return event
};

생성된 람다 함수에 트리거 추가

그러나 권한 문제 발생

람다 함수의 권한 추가

트리거 생성 완료

데이터베이스 연결 오류 발생

too many connections

데이터베이스를 수강생 전체가 사용하면서 발생한 오류같았다

엔지니어님 이거 보시면 연결수 늘려주세요

curl 요청 후, SQS에 있던 메시지가 사라진 것을 볼 수 있다

람다 함수의 로그를 살펴보면 메시지가 정상적으로 넘어온 것을 볼 수 있다

DLQ가 정상작동하는지 확인하기 위해 코드에 딜레이를 추가한다

function delay(time) {
  return new Promise(resolve => setTimeout(resolve, time));
}

module.exports.handler = async (event) => {
  await delay(15000)
  console.log(event)
  return event
};

타임아웃이 발생한 것을 볼 수 있다

기존 큐에 있던 메시지가 dlq로 이동한 것을 볼 수 있다