언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

Dynamo DB - 2) 사용자 인증 처리

monstro 2026. 7. 24. 15:26
728x90
반응형

- 개요

회원가입한 플레이어가 인증한 후사용자 정보를 Dynamo DB에 추가하는 람다 함수를 생성한다

 

- 절차

1) 람다 함수 생성 및 정책 설정

 

AWS 콘솔의 람다 탭에서 CongitoPostConfirmation 람다 함수를 생성한다

 

CognitoPostConfirmation 람다 함수 정책 설정 (1)

 

생성한 람다 함수에 적용할 정책을 설정한다

우선, Players 테이블을 대상으로 정책을 사용하도록 Players 테이블의 리소스 ARN을 복사 + 붙여넣기한다

 

CognitoPostConfirmation 람다 함수 정책 설정 (2)

 

정책은 DynamoDBPutItem 리소스를 사용할 수 있도록 구성하였다

 

CognitoPostConfirmation 람다 함수 정책 설정 (3)

 

생성한 정책의 이름을 위와 같이 설정한다

 

 

최종적으로 생성한 CognitoPostConfirmation 람다 함수에 정책을 적용한다

 

 

람다 함수에서 사용할 REGION 환경 변수를 정의한다

 

2) 람다 함수 정의

import { DynamoDBClient, PutItemCommand } from "@aws-sdk/client-dynamodb";

export const handler = async (event) => {
  
  console.log(JSON.stringify(event));

  if (event.triggerSource === 'PostConfirmation_ConfirmSignUp') {
    const dynamoDBClient = new DynamoDBClient( { region: process.env.REGION } );
    const username = event.userName;
    const cognitosub = event.request.userAttributes.sub;
    const email = event.request.userAttributes.email;

    const putItemInput = {
      TableName: "Players",
      Item: {
        "databaseid": { S: cognitosub },
        "username": { S: username },
        "email": { S: email },
      }
    };

    const putItemCommand = new PutItemCommand(putItemInput);
    try {
      const putItemResponse = await dynamoDBClient.send(putItemCommand);
    } catch(error) {
      return error;
    }
  }
  return event;
};

 

위와 같이 CognitoPostConfirmation 람다 함수의 코드를 정의한다

  • Cognito 트리거 이벤트 종류를 체크하여 플레이어가 회원가입 후에 인증이 성공한 경우에만 로직을 수행
  • REGION 환경 변수를 사용하여 DynamoDB 클라이언트를 생성
  • 인자로 전달받은 이벤트에서 핵심 사용자 정보 3가지를 추출
    • userName : 플레이어의 이름
    • cognitoSub : User Pool에서 부여하는 고유 식별자
    • email : 플레이어의 이메일 주소
  • DynamoDB의 Players 테이블에 문자열 형태로 데이터들을 매핑
  • 이후 DynamoDB에 데이터를 작성

 

3) 람다 함수 트리거 연결

 

현재 사용중인 User PoolLambda 트리거CognitoPostConfirmation 람다 함수를 연결한다

회원가입 후의 인증이 끝나면 Players 테이블에 추가하는 람다이므로 사후 확인 트리거 방식으로 동작한다

 

- 최종 실행 결과

 

에디터를 실행한 후에 위와 같이 회원정보를 기입한다

 

 

기입한 이메일 주소로 도착한 인증 코드를 입력하여 플레이어를 인증한다

 

 

최종적으로 DynamoDB의 Players 테이블에서 위와 같이 데이터가 추가된 것을 확인할 수 있다

728x90
반응형