-
[AWS] API Gateway 실습AWS 2024. 2. 14. 22:25
API Gateway는 사용자로부터 다양한 요청을 받는다 이 정보들은 Lambda 함수로 전달이 된다.
사용자의 요청에 따라 Lambda 함수에서 DynamoDB 테이블에 데이터를 넣든 수정하든 삭제하든 여러가지 이벤트를 발동 시킬 것이다.
DynamoDB 테이블 만들기
클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services
필요한 만큼 이용할 수 있는 것은 물론 필요에 따라 몇 분 만에 확장 또는 축소할 수 있습니다. 자세히 알아보세요.
aws.amazon.com
콘솔 로그인 ⭢ DynamoDB로 접속 ⭢ 리젼 서울 확인
테이블 생성 click
테이블 이름 : customers
파티션 키 : customer_id (문자열)
정렬 키 : 생략
그밖 : PASS
테이블 생성 Click
API 생성
API Gateway 서비스로 들어가기
REST API 구축 click
API 생성
생성한 API로 DynamoDB에 데이터 삽입
리소스 생성 click
리소스는 API의 머리에 해당되며 리소스 안에서 다양한 메소드를 만들어야한다.
리소스 경로도 /customer 로 맞춰준다.
여기서 메서드란 post, get, delete 같은 것들이다.
POST 메서드 만들기
메서드를 만들기위해 처리를 위한 Lambda 함수부터 만들어 주겠다.
함수 생성 Click
메서드 생성 Click
클라이언트가 API 요청을하면 화살표를 따라가서 포스트 요청을 받는다면 통합 요청에 Lambda 함수가 호출이 될 것이다.
Lambda 함수 이름은 addCustomer이다.
Lambda 함수 요청이 끝난다면 클라이언트에게 무언거 반환을 할것을 할것이다.
본실습에선 반환하는 값이 없기 때문에 메서드 응답과 통합 응답이 비어있다.
API 테스트 실행
인자값을 넣어서 API를 실행할 수 있다.
요청 본문 : API 헤더, JSON 형태여야함.
{ 'customer_id':38NME', 'customer_name':'Eo', 'product_name':'sofa', 'price':5000000 }
이렇게 코드 작성 후 테스트 click
상태 200 : 이상없이 수행
Lambda 함수는 데이터를 반환을 하지, 실제로 테이블에 데이터를 넣고 업데이트하는 기능 구현은 하지 않았다. Lambda 함수의 수정이 필요하다.
import boto3 resource = boto3.resource('dynamodb') table = resource.Table('customers') def lambda_handler(event, context): table.put_item(Item=event) return {"code":200, "message": "Data Successfully Inserted!"}
이렇게 수정을 해준다.
다시 테스트 해줬다.
상태는 200으로 잘 떴다. 그러면 이제 데이터에 값이 들어갔는지 확인해보자.
테이블에 데이터가 잘들어갔다.
'AWS' 카테고리의 다른 글
[AWS] Code Commit (1) 2024.02.15 [AWS] CI/CD (0) 2024.02.15 [AWS] API Gateway (0) 2024.02.14 [AWS] API (0) 2024.02.14 [AWS] DynamoDB - Streams (0) 2024.02.14