우노
[AWS API Gateway] AWS Lambda + API Gateway 로 RESTful API 생성 본문
[AWS API Gateway] AWS Lambda + API Gateway 로 RESTful API 생성
운호(Noah) 2021. 8. 13. 15:12AWS Lambda + API Gateway 로 RESTful API 생성
- 구현 순서
- AWS Lambda 콘솔을 사용하여, Lambda 함수 생성
- API Gateway 콘솔을 사용하여, REST API 생성
- API 테스트
- 실행 순서
- 사용자가 REST API 를 호출하면, API Gateway 는 요청을 Lambda 함수로 라우팅
- API Gateway 는 Lambda 로부터 받은 응답을 사용자에게 반환
1. Lambda 함수 생성 (Python)
POST 받은 데이터를 그대로 출력하는, 간단한 Lambda 함수를 생성합니다.
https://console.aws.amazon.com/lambda에서 Lambda 콘솔에 로그인합니다.
[함수 생성] 을 선택합니다.
[함수 이름] 을 입력합니다.
— 해당 포스트에서는 "unho-test-function" 으로 입력
[런타임] 을 Python 3.8 로 선택합니다.
권한에서 [기본 실행 역할 변경]을 클릭합니다.
[AWS 정책 템플릿에서 새 역할 생성]을 선택합니다.
[역할 이름] 을 입력합니다.
— 해당 포스트에서는 "unho-test-role" 으로 입력
정책 템플릿에서 [단순 마이크로 서비스 권한] 을 선택합니다.
— 이 정책은 Lambda 함수에 DynamoDB 와 상호 작용할 수 있는 권한을 부여합니다.
우측 하단의 [함수 생성] 을 클릭합니다.
콘솔의 코드 편집기에서 [lambda_function.py] 를 열고 내용을 다음 코드로 삽입합니다.
import json def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps(event["body-json"]["Name"]) }
상단의 [Deploy] 를 선택하여 함수를 저장(배포)합니다.
2. REST API 생성 (POST 메소드 등록)
https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.
[API 생성] 을 선택한 다음 [REST API] 의 [구축] 을 클릭합니다.
API 이름을 입력한 뒤, [API 생성] 을 클릭합니다.
— 해당 포스트에서는 "unho-test-api" 로 입력
상단의 [작업] 을 눌러 [리소스 생성] 을 클릭합니다.
리소스 이름을 입력한 뒤, [리소스 생성] 을 클릭합니다.
— 해당 포스트에서는 "unho-test-resource" 로 입력
상단의 [작업] 을 눌러 [메서드 생성] 을 클릭합니다.
[POST] 메서드를 생성한 뒤, 체크를 눌러줍니다.
[Lambda 함수]를 입력한 뒤, [저장] 을 클릭합니다.
— 해당 포스트에서는 "unho-test-function" 으로 입력
[통합 요청] 을 클릭합니다.
하단의 [매핑 템플릿] 을 클릭합니다.
[정의된 템플릿이 없는 경우 (권장)] 을 클릭한 뒤, [매핑 템플릿 추가] 를 클릭하고, [application/json] 을 입력한 뒤, 체크 표시를 클릭합니다.
스크롤을 내려, [템플릿 생성] 에서 [메서드 요청 패스스루] 를 클릭한 뒤, [저장] 합니다.
상단 [작업] 의 [CORS 활성화] 를 클릭합니다.
[Access-Control-Allow-Headers] 를 ['Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token, Accept'] 로 입력한 뒤, [CORS 활성화 및 기존의 CORS 헤더 대체] 를 클릭합니다.
상단 [작업] 의 [API 배포] 를 클릭합니다.
[배포 스테이지] 는 [새 스테이지] 를 선택한 뒤, [스테이지 이름] 을 입력하고 [배포] 클릭
— 해당 포스트에서는 "unho-test-stage" 로 입력
좌측 [스테이지] 탭 클릭 후, "unho-test-stage" → "unho-test-resource" → [POST] 메소드를 클릭 → URL 복사
3. API 테스트
복사한 URL 로 POST 를 테스트합니다.
curl \ -H "Content-Type: application/json" \ -X POST https://6adr9ciuhk.execute-api.ap-northeast-1.amazonaws.com/unho-test-stage/unho-test-resource \ -d '{ "Name": "unho Choi" }'
'AWS > API Gateway' 카테고리의 다른 글
[AWS API Gateway] DynamoDB, Lambda 를 사용한 CRUD API 구축 (0) | 2021.08.09 |
---|