AWS Lambda 생명주기로 Invoke 시점에 handler가 실행되는데, 해당 함수가 종료되면, (추가로 지금 처리해야 할 이벤트가 없는 경우) 해당 런타임은 종료될 수 있습니다. 그러니, 위 handler()함수가 빠져나가고 나면, 비동기 호출을 해놓은 것이 실행 완료되기 전에 런타임이 종료될 상황인 거네요. 간단하게는, await를 걸어서 비동기 호출 종료시까지 대기하면 될 텐데요, 아마 해당 람다 함수를 HTTP API용도 등으로 사용하고 있어서, 빠른 응답을 돌려주고 빠지시려는 것 같습니다. 질문자님 덕분에, 저도 이렇게 비동기 작업을 추가로 할 경우 어떻게 해야할까 찾아봤습니다. 당장 성패 응답을 주고 비동기로 뭔가 추가 작업을 하려면, https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html 여기 문서를 참고해서, 비동기 요청을 남기고 빠지면 될 것 같습니다. 기본적으로는 SQS등에 처리할 작업을 위임해 놓고 빠지는 거라고 보면 될 것 같네요. 해당 작업을 추가 처리하는 Lambda를 따로 두거나 하는 식으로 위임받은 일을 처리하면 될 것 같네요. 위 문서는 위 작업을 정형화 해둔 것 같습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 18일 오전 2:54

댓글 0