AWS api gateway + lambda 로 websocket api 만들기

버들비·2021년 6월 26일
0
  1. aws lambda 의 권한에 사용할 정책에 AmazonAPIGatewayInvokeFullAccess 추가하기

  2. api gateway 에서 websocket 용 api를 만들고 lambda 함수랑 통합하기

  3. lambda 함수 작성하기

const AWS = require("aws-sdk");

const url = "{API 의 ID}.execute-api.{REGION 이름}.amazonaws.com/{STAGE}" // API gateway 로 생성시 만들어지는 https://{API 의 ID}.execute-api.{REGION 이름}.amazonaws.com/{STAGE} 이름} 에서 https:// 를 제외한 부분을 적어준다;
const apig = new AWS.ApiGatewayManagementApi({
            endpoint: url
        });

exports.handler = async (event, context, callback) => {
        const connectionId = event.requestContext.connectionId;

        try {
            await apig
                .postToConnection({
                'ConnectionId': connectionId,
                'Data': Buffer.from(JSON.stringify({message: connectionId}))
            }).promise();
        } catch(err) {
                
        }
          
        const response = {
            statusCode: 200,
            body: connectionId,
        };
    
        return response      
};
  1. wscat 으로 테스트.

npm 으로 wscat 글로벌 설치.

wscat -c wss://{API 아이디}.execute-api.{REGION 이름}.amazonaws.com/{STAGE 이름} 을 터미널에 입력하면 websocket 연결이 된다.

reference
https://www.youtube.com/watch?v=BcWD-M2PJ-8

0개의 댓글