🔗 이전 포스팅 링크
실습 ① - 실습 구성도 아키텍처, 실습 전 IAM 사용자 생성
[AWS TechCamp] AWS 서버리스로 서버 고민없이 웹 애플리케이션 구축하기 ① - 실습 구성도 아키텍처,
온라인에서 3일 동안 진행되는 AWS TechCamp를 신청했다. 이때까지 공부해 온 AWS 서비스가 어떻게 설계되어서 사용되는지 직접 실습을 하면서 공부하기 좋은 기회가 될 것 같았다. 간단한 개념 정리
hye-ne.tistory.com
📍 DynamoDB 생성하기
서비스에 연결할 DynamoDB 테이블을 만들어준다. 테이블이 만들어지면 멤버의 이름과 성격 데이터를 저장할 수 있다.
1. DynamoDB 콘솔로 들어가서 Create table 버튼을 눌러 테이블을 생성한다.
2. table 명을 hello-member 으로, Partition key 는 name으로 작성 후, 테이블을 생성해준다.
3. status가 active가 되면 name이라는 기본키를 가진 hello-member 테이블이 생성된 것이다.
📍 Lambda로 앱서버 생성하기
1. Lambda 콘솔에 접속하여 function을 만들어준다.
2. Author from scratch를 선택한다.
※ Author from scratch : Lambda.의 모든 설정을 처음부터 해서 만드는 것
3. Permissions 을 직접 생성한다. Execution role 의 Create a new role from AWS policy templates 를 선택하여 AWS에서 제공하는 권한을 사용한다.
※ Simple microservice permissions DynamoDB선택 : NoSQL 데이터베이스 서비스인 AWS DynamoDB와 연결할 예정인데, AWS 서비스끼리 서로 연결하거나 이용하거나 호출하거나 할 때에는 권한이 필요하기 때문
4. 위와 같이 설정한 후, Lambda 함수를 생성하고, Lambda 화면에서 Code Source 부분에 코드를 붙여 넣고 Deploy를 한다. Deploy를 누르면 Test 버튼이 활성화 된다.
※ 멤버의 이름과 기분 상태를 랜덤으로 매핑시켜주고, 이를 DynamoDB에 저장하는 코드
import json
import boto3
import random
import json
def lambda_handler(event, context):
member_name = ['Ama','Jone','Zon','Penny','Jessie']
member_status = ['Happy','Sad','Serious','Satisfied','Free']
dynamodb = boto3.resource('dynamodb',endpoint_url='http://dynamodb.ap-northeast-2.amazonaws.com')
member_table = dynamodb.Table('hello-member')
name = member_name[random.randint(0,4)]
status = member_status[random.randint(0, 4)]
member_table.put_item(
Item={
'name': name,
'status': status,
}
)
documents = {'name':name,'status':status}
print(documents)
return {
'statusCode': 200,
'headers': {'Access-Control-Allow-Origin': '*'},
'body': json.dumps(documents)
}
5. Test를 하기 전에 Test event를 설정해준다.
6. 그리고 Test를 눌러주면 테스트가 진행된다. 이전에 DynamoDB Table을 만들었기 때문에 DynamoDB에도 데이터가 잘 저장되었는지 확인한다.
7. 생성했던 테이블로 들어가서 Explore table items 버튼을 눌러 테이블에 입력된 Item들을 확일할 수 있다.