수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다
개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!
교재 <당신이 지금 알아야 할 AWS - 이영호, 한동수 지음>를 토대로 실습을 진행하였습니다.
* 실습 요약
1. API 게이트웨이용 람다 함수 생성
A. 람다 함수 생성(람다 함수 이름 : lambda_for_apigateway_get)
B. 람다 함수 실행 역할 생성(람다 역할 이름 : role_for_apigateway_get)
2. API 게이트웨이용 람다 이벤트 구성
3. 다이나모 DB서비스 실행 권한을 위한 IAM 정책 설정
A. 정책 생성 및 검토(정책 이름 policy_다이나모 DB_crud)
B. 역할 생성(역할 이름 : role_for_apigateway_get)
4. 다이나모 DB 생성
5. 람다 함수 수정
6. API 게이트웨이 테스트 및 다이나모 DB GET 확인
1) API 게이트웨이용 람다 함수 생성
Lambda > 함수 생성 > 함수 이름 : lambda_for_apigateway_get > 런타임 : Node.js 14.x > AWS 정책 템플릿에서 새 역할 생성 > 역할 이름 : role_for_apigateway_get > 정책 템플릿 : 기본 Lambda@Edge 권한 > 함수 생성
2) API 게이트웨이 연결
트리거 추가 > API 생성 > HTTP API > 보안 : 열기 > 추가
보안 - 열기 : 별도의 인증 없이 누구나 요청을 보낼 수 있습니다.
API엔드포인트라는 항목과 URL이 나타나는데, API 엔드포인트란 HTTP 통신을 통해 람다 함수를 실행시킬 때 접속해야 하는 주소입니다. 주소를 클릭합니다.
람다에서 전달해준 데이터를, API 게이트웨이를 통해 HTTP 프로토콜 GET 방식의 데이터("Hello from Lambda")로 전달받았습니다.
함수코드의 에디터에서 "hello from lambda" 부분을 event.queryStringParameters로 변경합니다.
단, "" 을 포함하지 않고 event.queryStringParameters 텍스트만 넣어야 합니다.
Deploy 버튼을 클릭하고 다시 한 번 API 엔드포인트 URL 로 접속합니다.
아래와 같이 아무것도 내용이 뜨지 않으면 혹은 null 이 뜨면 성공입니다.
이번에는 파라미터로 인자를 전달해보겠습니다. GET 데이터는 인자를 전달할 대 물음표와 함께 Key=value 형태로 데이터를 전달합니다. 브라우저 주소창 끝에 '?text=hello'를 추가합니다.
추가적인 데이터를 더 전달하고 싶다면 '&' 특수 문자로 데이터를 전달할 수 있습니다.
3) 정책 생성
이제, 직접 람다 함수에서 데이터를 받아 다이나모 DB에 저장해보도록 하겠습니다.
권한 > 역할 이름 클릭 > IAM 메뉴로 새 탭이 열림
정책 연결 > 정책 생성 > 서비스 : DynamoDB > 수동 작업 : 모든 > 리소스 : 모든 리소스 > 다음 > 태그(무시) > 다음 > 이름 : policy_dynamodb_crud > 정책 생성
역할 > role_for_apigateway_get 클릭 > 정책 연결 > policy_dynamodb_crud 체크 > 정책 연결
role_for_apigateway 역할에 policy_dynamodb_crud 정책이 성공적으로 연결되었습니다.
이제 람다 함수가 DynamoDB에 접근할 수 있습니다.
4) DynamoDB 생성
DynamoDB > 테이블 만들기 > 테이블 이름 : dynamo_apigateway_query > 기본 키 : id (문자열) > 기본 설정 사용 > 생성
5) 람다 함수 수정
lambda_for_apigateway_get 함수의 소스코드를 수정합니다.
소스코드는 'queryStringParameter'를 인자로 받아 DynamoDB에 저장하고 GET 데이터나 ID 값이 없다면 400, 저장하는데 문제가 있다면 500, 성공적으로 데이터를 넣었다면 200코드를 반환하는 소스코드입니다.
6) API 게이트웨이 테스트 및 DynamoDB GET 확인
API 엔드포인트 URL 주소로 접속했을 때, 아래와 같이 "id가 없습니다" 라는 텍스트가 뜨면 성공입니다.
URI 끝에 '?id=72'와 같은 GET 데이터를 입력해보겠습니다.
데이터가 성공적으로 입력된 결과를 확인할 수 있습니다.
ID 키 값만이 아니라, 다양한 파라미터를 통해 DynamoDB에 데이터를 전달할 수 있습니다.
DynamoDB로 이동하여 이전에 만들어 둔 dynamo_apigateway_query 테이블을 클릭합니다.
테이블의 "항목"을 클릭하면 방금 입력한 데이터가 정상적으로 삽입된 것을 확인할 수 있습니다.
"?id=mingyu&password=1234" 라는 GET데이터를 입력해 데이터를 추가해봤습니다.
지금까지 브라우저를 통해 API 게이트웨이로 GET 데이터를 전달하고 람다 함수에서 데이터를 받아 DynamoDB에 저장해봤습니다. 다음 포스팅은 POST 방식을 사용한 실습을 진행해보도록 하겠습니다.
'클라우드 > AWS' 카테고리의 다른 글
AWS Beanstalk 개념과 이해 (0) | 2021.02.18 |
---|---|
마이크로서비스 기반 번역 웹 서비스(POST) (2) | 2021.02.17 |
마이크로서비스의 개념과 이해 (0) | 2021.02.17 |
Lambda 함수 기반 AWS 지출 요금 모니터링 (0) | 2021.02.17 |
Lambda 함수 기반 문자 알림 서비스 (0) | 2021.02.17 |
댓글