KaKao Map Rest API + Flutter 사용해보기 ( http 통신 ) - 2 ( AWS lambda)
해당 게시글에서는 지도 화면이 아닌 JSON 데이터를 받는 방법입니다!
이번에는 lambda 함수를 먼저 작성하고 테스트 해보자
이전에는 Flutter + rest api 통신 문제로 인해 통신하지 못했지만, javascript에서는 가능했다. 때문에 AWS Web Service를 활용하여 서버에 코드를 등록하고 호출하는 방식을 사용해보고자 한다.
클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services
필요한 만큼 이용할 수 있는 것은 물론 필요에 따라 몇 분 만에 확장 또는 축소할 수 있습니다. 자세히 알아보세요.
aws.amazon.com
우리가 사용할 것은 코드를 등록하여 사용할 Lambda, Flutter와 통신할 매개체인 API GateWay다.
각각 월 100만건 무료로 그 이상 호출 시 사용한만큼에 따라 가입한 정책에 따라 요금이 부과된다.
때문에 가입 후 카드 등록이 필수다. 카드 등록시 1$를 결제한 후 바로 취소해 준다고 써져 있다.
( 카드 결제 정보가 맞는지 확인차 하는 것으로 보이며 저는 100원 결제되었다가 바로 취소되었습니다. )
가입 후 카드정보를 다음과 같이 입력하면 된다.
1. 가입이 완료되었다면 콘솔로 이동해 주자
2. 콘솔 상단의 검색에 lambda를 검색 후 이동해 주자
3. lambda 함수를 생성 해주자
4. 사용할 함수명과 함께 함수를 만들어 주자
코드를 등록하기 때문에 내장함수가 아니면 라이브러리를 다운받아서 같이 올려줘야 한다.
때문에 Node.js 가 익숙하다면 Node.js를 사용하고 나는 Python으로 진행하였다.
런타임에서 Node.js 가 아닌 Python을 선택하면 된다.
( 저는 Test(함수 이름), Python 3.12 version(런 타임 환경) 을 사용했습니다. )
생성 후 다음과 같은 화면을 볼 수 있는데
코드 작성 후 Deploy(배포)를 통해 저장한다고 생각하면 되고 Test를 통해 코드 테스트를 해 볼 수 있다.
다른 언어의 main함수와 같이 lambda_function 이름을 가진 코드를 실행하기 때문에 이름 변경에 주의하자.
이제 코드를 작성하자.
기존의 Dart와 Node.js에서 작성했던 코드를 Python으로 변환하고
x, y를 매개변수로 받는 함수로 작성해보자
1. 먼저 원하는 위치에 빈디렉토리 생성 후 lambda_fuction.py 파일을 만들어 주자.
2. Aws lambda에 쓸 카카오와 Rest API 통신하는 코드를 작성한다.
3. 해당 파일 경로에 이동하여 requests 라이브러리를 추가해주자.
cmd 창에 다음과 같이 입력한다.
3-1. >cd ~파일경로/Test
3-2. >pip install requests -t
4. 해당 Test 파일을 압축 후 업로드 한다.
업로드 후 저장해 준다.
여기서 주의할 점이 lambda 함수 페이지에서 root 하위 파일들로 위치해 있어야 한다.
5. 이제 Test 해보자
Test 버튼 클릭 후 이름과 임의의 경도와 위도 값을 넣으면 된다.
다시 테스트 버튼을 클릭하면 다음과 같은 결과를 얻을 수 있다.
마치며...
메모리 사용량 시간 등을 알려주며 한글은 변환되어 \\uc11c\\uc6b8(서울)로 표현된다.
다음은 API GATEWAY를 사용하여 lambda와 연결하고
Flutter에서 URL에 POST 요청을 통해 처리할 수 있도록 하겠다