오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-06 00:00
관리 메뉴

우노

[AWS API Gateway] AWS Lambda + API Gateway 로 RESTful API 생성 본문

AWS/API Gateway

[AWS API Gateway] AWS Lambda + API Gateway 로 RESTful API 생성

운호(Noah) 2021. 8. 13. 15:12

AWS Lambda + API Gateway 로 RESTful API 생성

  • 구현 순서
    1. AWS Lambda 콘솔을 사용하여, Lambda 함수 생성
    2. API Gateway 콘솔을 사용하여, REST API 생성
    3. API 테스트
  • 실행 순서
    • 사용자가 REST API 를 호출하면, API Gateway 는 요청을 Lambda 함수로 라우팅
    • API Gateway 는 Lambda 로부터 받은 응답을 사용자에게 반환

1. Lambda 함수 생성 (Python)

POST 받은 데이터를 그대로 출력하는, 간단한 Lambda 함수를 생성합니다.

  1. https://console.aws.amazon.com/lambda에서 Lambda 콘솔에 로그인합니다.

  2. [함수 생성] 을 선택합니다.

  3. [함수 이름] 을 입력합니다.

    — 해당 포스트에서는 "unho-test-function" 으로 입력

  4. [런타임] 을 Python 3.8 로 선택합니다.

  5. 권한에서 [기본 실행 역할 변경]을 클릭합니다.

  6. [AWS 정책 템플릿에서 새 역할 생성]을 선택합니다.

  7. [역할 이름] 을 입력합니다.

    — 해당 포스트에서는 "unho-test-role" 으로 입력

  8. 정책 템플릿에서 [단순 마이크로 서비스 권한] 을 선택합니다.

    — 이 정책은 Lambda 함수에 DynamoDB 와 상호 작용할 수 있는 권한을 부여합니다.

  9. 우측 하단의 [함수 생성] 을 클릭합니다.

  10. 콘솔의 코드 편집기에서 [lambda_function.py] 를 열고 내용을 다음 코드로 삽입합니다.

    import json
    
    def lambda_handler(event, context):
        # TODO implement
        return {
            'statusCode': 200,
            'body': json.dumps(event["body-json"]["Name"])
        }
  11. 상단의 [Deploy] 를 선택하여 함수를 저장(배포)합니다.

2. REST API 생성 (POST 메소드 등록)

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. [API 생성] 을 선택한 다음 [REST API][구축] 을 클릭합니다.

  3. API 이름을 입력한 뒤, [API 생성] 을 클릭합니다.

    — 해당 포스트에서는 "unho-test-api" 로 입력

  4. 상단의 [작업] 을 눌러 [리소스 생성] 을 클릭합니다.

  5. 리소스 이름을 입력한 뒤, [리소스 생성] 을 클릭합니다.

    — 해당 포스트에서는 "unho-test-resource" 로 입력

  6. 상단의 [작업] 을 눌러 [메서드 생성] 을 클릭합니다.

  7. [POST] 메서드를 생성한 뒤, 체크를 눌러줍니다.

  8. [Lambda 함수]를 입력한 뒤, [저장] 을 클릭합니다.

    — 해당 포스트에서는 "unho-test-function" 으로 입력

  9. [통합 요청] 을 클릭합니다.

  10. 하단의 [매핑 템플릿] 을 클릭합니다.

  11. [정의된 템플릿이 없는 경우 (권장)] 을 클릭한 뒤, [매핑 템플릿 추가] 를 클릭하고, [application/json] 을 입력한 뒤, 체크 표시를 클릭합니다.

  12. 스크롤을 내려, [템플릿 생성] 에서 [메서드 요청 패스스루] 를 클릭한 뒤, [저장] 합니다.

  13. 상단 [작업][CORS 활성화] 를 클릭합니다.

  14. [Access-Control-Allow-Headers]['Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token, Accept'] 로 입력한 뒤, [CORS 활성화 및 기존의 CORS 헤더 대체] 를 클릭합니다.

  15. 상단 [작업][API 배포] 를 클릭합니다.

  16. [배포 스테이지][새 스테이지] 를 선택한 뒤, [스테이지 이름] 을 입력하고 [배포] 클릭

    — 해당 포스트에서는 "unho-test-stage" 로 입력

  17. 좌측 [스테이지] 탭 클릭 후, "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
Comments