AWS

[AWS] AWS Lambda & Amazon API Gateway

  • -
728x90

AWS Lambda를 API Gateway를 통해 연결을 해보자.

 

AWS Lambda

함수 생성 클릭을하면 아래와 같은 화면이 나온다.

적절한 함수 이름을 정하고, 함수 작성시 사용할 언어를 선택해준다. 나는 Python을 이용해서 만들었다.

 

위와 같은 예제 코드가 나온다.

기본적으로 Lambda는 event와 context를 파라미터로 가진다.

테스트를 위해 body에 json을 넣지 않고 hello를 넣어 반환해보자.

코드를 완성하고 베포를 누르면 함수 작성이 완성된다.

 

미리 만들어둔 API Gateway > 경로 탭으로 이동하면 위와같은 페이지가 나온다.

Lambda 함수와 연결을 위해 Create버튼을 누르고 Get 방식으로 루트 경로에 생성해보자.

 

그런 다음 위에서 만든 Lambda와 통합연결을한다.

통합 연결 > 통합 생성 및 연결 > 통합 대상 > Lambda 함수

Lambda 함수에서 위에서 생성한 Lambda 함수를 선택 > 생성

 

이를 확인하기위해 API의 주소로 접속해보자.

 

API Gateway 탭에서 API를 누르고 지금 사용하고있는 API Gateway를 클릭해보자.

URI 호출 부분의 주소를 클릭해보면 아래와 같은 페이지가 나온다.

람다 함수에서 반환했던 Hello가 잘 나오는 것을 확인할 수 있다.

이때 서버가 응답하는 정보를 확인해보면 아래와 같다.

Response Headers를 확인해보면

content-type이 text/plain인 것을 확인할 수 있다.

이를 html로서 웹브라우저가 인식하게 하려면 content-type을 text/html로 바꾸어주어야한다.

 

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-basic-concept.html

 

Amazon API Gateway concepts - Amazon API Gateway

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

API Gateway 메뉴얼이 위와같이 잘 나와있다. 

HTTP API 작업 > 통합 > AWS Lambda 통합에 가보면 예제들이 많다. 여기서 header 값을 바꾸는 방법을 찾아보면 

{
  "isBase64Encoded": false,
  "statusCode": 200,
  "body": "Hello from Lambda!",
  "headers": {
    "content-type": "application/json"
  }
}

위와 같이 바꿀 수 있다.

 

이렇게 수정해주고 다시 배포를 해보자.

그런 후 다시 리로드를 해주면 아래와 같이 바뀐 것을 확인할 수 있다.

파이썬에서 바디값을 html형식으로 줄 때 위와같이 할 수 있다.

 

728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.