Bare Minimum Requirement :
· 다음 아키텍처로 구성된 서버리스 애플리케이션을 배포합니다.
o API Gateway - Lambda - DynamoDB
· 직접 API Gateway로 실행해 봅니다.
· API Gateway의 인증 기능을 이용해서, HTTP 요청에 특정 API Key를 사용하는 예제를 다음 두 가지 방법으로 구현합니다.
1. API Key
2. 권한 부여자
· CloudWatch Logs를 통해서 API 호출을 모니터링할 수 있어야 합니다.
Step 1 : API Gateway - Lambda 배포 Instruction
1. Lambda 함수와 API gateway 세팅 위한 SAM 작성
- https://serverlessland.com/patterns/lambda-dynamodb
2. Runtime nodejs.12 -> 14로 수정
3. Sam build + sam deploy –guided 통해 배포
Error: Unable to upload artifact LambdaPutDynamoDB referenced by CodeUri parameter of LambdaPutDynamoDB resource.
Parameter CodeUri of resource LambdaPutDynamoDB refers to a file or folder that does not exist /home/novaskies/dynamodb/.aws-sam/build/LambdaPutDynamoDB
해결 방법 : 처음 template build및 설치했을 때 CodeUri는 /src로 설정되어 파일들을 찾을 수 없어 데렉토리 설정하니깐 이상없이 deploy 완료
4. Ubuntu AWS CLI 사용하면서 Lambda 함수가 잘 작동 되는지 확인 합니다.
Step 2 : API 게이트웨이 – Lambda
1. Lambda 함수에 트리거 추가 합니다.
- API Gateway 선택
- 새 API 선택 후 REST API 선택
- 보안은 “열기”로 설정
2. API 엔드포인트에 HTTP 요청을 보내면, 함수를 호출할 수 있다. 요청의 상세 내용이 DynamoDB에 저장된다.
STEP 3: API 게이트웨이에 제한 추가하기
하단 내용은 실습 해보기 :
- POST 전용으로만 작동하게 만들기
- 본문만 저장하도록 만들기
- API 키를 이용한 인증 추가하기
- 권한 부여자를 이용한 인증 부여하기 (optional)
1. AWS API Gateway 들어가 스테이지 선택한후에 “내보내기”로 들어가 원하는 파일 선택
2. 예시 API (Pet Store) 받아와 GET 메서드 테스트 할 경우 하단과 같이 나옵니다.
참고 : API Gateway에 API key 추가 할 경우 API 엔드포인트 접속하면 “Message : Forbidden” 이 나옵니다.
3. Post Method 및 요청 본문에 특별한 Request을 통해 필요한 내용 / 원하는 내용을 받을 수 있습니다.
4. POST 내용만 배포할 경우 작업 버튼 선택 후 “새 스테이지” API 배포 내용 기입 후 배포
- API Gateway에 스테이지가 새로 생겼으며 URL 호출 들어가면 Pet store API 페이지가 나옵니다.
- GET REUEST 링크 선택하면 POST 내용만 나오는 페이지로 갑니다.
Pet store API ref : https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-from-example.html
'마이크로서비스 작성' 카테고리의 다른 글
Devops Day 45 (5.9) 마이크로서비스 작성_마이크로서비스 배포 툴 (1) | 2023.05.10 |
---|---|
Devops Day 45 (5.9) 마이크로서비스 작성_독립적인 서비스 구성 (1) | 2023.05.10 |