API-SOCKET Gateway 에서 람다 연결 시 타임아웃 해결 문의

0

채팅 구조를 만들기 위해 websocket-api-gw 를 사용중이고, 메시지 전송을 위한 sendmsg 경로를 추가 생성하였습니다 sendmsg는 실질적으로 lambda로 연결을 시켰습니다. ( 0-- 기본 람다 구동 시간은 3분 정도 입니다. 해당 람다는 메시지를 받으면 Ai 모델을 수행하며 결과 값에 대해서

client = boto3.client('apigatewaymanagementapi', endpoint_url=endpoint_url)

    # 연결된 클라이언트에게 메시지 보내기
    response = client.post_to_connection(
        ConnectionId=f'{clinetId}',
        Data='보낼 메시지'
    )
    

보내고 있습니다. )

webPage에서 소켓 연결 후에 sendmsg 로 메시지를 전송하면 29초 후에

{ "message": "Endpoint request timed out", "connectionId": "X47ROePIoE0CJog=", "requestId": "X47aYGvtoE0FiHg=" }

웹소켓에서 해당 에러는 회피하기 위해 람다를 비동기로 호출 할 수 있는 방법이 없을까요? 람다 수행이 오래걸려서 websocket 방식으로 변경을 했는데..

1개 답변
0

안녕하세요.

WebSocket API는 백앤드 통합으로 호출하는 경우 최대실행시간이 29초까지 가능한 제약이 존재합니다. 공유해주신 오류는 위 제약과 관련이 있으며 해당 제약은 증설이 불가능하기 때문에, 백앤드 Lambda 함수 실행이 3분이상 소요된다면 언급하신것처럼 비동기 방식의 호출로 구성하여야 합니다.

WebSocket API에서 비동기 방식의 호출은 아래와 같이 구현이 가능합니다.

Client →WebSocket →SQS →Lambda

답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인