Serverless에서 Cognito 사용자 풀 설정하기
This chapter has been archived and is no longer updated. View the current version of the guide.
Serverless에서 Cognito 사용자 풀 설정하기
이제 serverless.yml
을 통해 Cognito 사용자 풀을 설정하는 방법을 살펴보겠습니다. 이 과정은 Cognito 사용자 풀 생성하기 챕터에서 수동으로 진행했던 것과 매우 유사할 것입니다.
리소스 생성
resources/cognito-user-pool.yml
에 다음 내용을 추가합니다.
Resources:
CognitoUserPool:
Type: AWS::Cognito::UserPool
Properties:
# 스테이지 기반으로 이름 생성
UserPoolName: ${self:custom.stage}-user-pool
# 이메일을 별칭으로 설정
UsernameAttributes:
- email
AutoVerifiedAttributes:
- email
CognitoUserPoolClient:
Type: AWS::Cognito::UserPoolClient
Properties:
# 스테이지 기반으로 앱 클라이언트 이름 생성
ClientName: ${self:custom.stage}-user-pool-client
UserPoolId:
Ref: CognitoUserPool
ExplicitAuthFlows:
- ADMIN_NO_SRP_AUTH
GenerateSecret: false
# 생성된 User Pool의 ID 출력
Outputs:
UserPoolId:
Value:
Ref: CognitoUserPool
UserPoolClientId:
Value:
Ref: CognitoUserPoolClient
여기서 수행하는 작업을 간단히 살펴보겠습니다:
-
커스텀 변수
${self:custom.stage}
를 사용해 User Pool(및 User Pool 앱 클라이언트)의 이름을 스테이지 기반으로 지정합니다. -
UsernameAttributes
를 이메일로 설정합니다. 이는 User Pool에 사용자가 이메일을 사용자명으로 로그인할 수 있도록 지시합니다. -
S3 버킷과 마찬가지로, CloudFormation이 생성된 User Pool ID와 User Pool Client ID를 알려주도록 합니다. 이를 위해
Outputs:
블록을 마지막에 추가합니다.
리소스 추가하기
serverless.yml
에서 리소스를 참조해 보겠습니다. resources:
블록을 다음 코드로 교체하세요.
# 별도의 CloudFormation 템플릿으로 리소스 생성
resources:
# DynamoDB
- ${file(resources/dynamodb-table.yml)}
# S3
- ${file(resources/s3-bucket.yml)}
# Cognito
- ${file(resources/cognito-user-pool.yml)}
이제 Cognito Identity Pool을 구성하여 모든 것을 연결해 보겠습니다.
For help and discussion
Comments on this chapter