본문 바로가기
Research/AWS

AWS Lambda_HTTP API Trigger로 함수 호출하기

by RIEM 2023. 4. 12.
728x90

레퍼런스 : https://hello-bryan.tistory.com/453

AWS Lambda를 호출하는 API는 두 가지로, HTTP와 REST가 있다.

API Gateway 트리거 생성

함수 메인 화면에서 [트리거 추가] 버튼 클릭

트리거는 [API 게이트웨이]로 설정하고, 새 API로 HTTP API 옵션을 설정한다. 보안은 [열기]로 설정해준다.

추가옵션에서 CORS 세팅을 선택해준다.

위 엔드포인트를 클릭하면 아래와 같은 내용이 단순 리턴된다. 파라미터가 없어서 그렇다.

파라미터 추가

# app.py
import json

import requests

def handler(event, context):
    url = 'https://jsonplaceholder.typicode.com/albums'
    response = requests.get(url)
    status_code = response.status_code
    body = response.reason
    if status_code == 200:

        album_list = json.loads(response.content)
        body = f'album count = {len(album_list)}'
        print(event)

        if 'album_id' in event:
            album = next(filter(lambda x: x['id'] == event['album_id'], album_list), None)
            body = album if album else f'not found album id : {event["album_id"]}'
        if 'pathParameters' in event:
            try:
                album_id = event['pathParameters']['album_id']
                album = next(filter(lambda x: x['id'] == int(album_id), album_list), None)
            except:
                pass

    return {
        'statusCode': status_code,
        'body': json.dumps(body)
    }

파라미터를 가져오는 로직을 추가했다.

API 게이트웨이 설정으로 들어간다.

Develop / Routes에서 파라미터를 추가해준다.

생성한 파라미터 경로를 [통합 연결] 버튼 누른다.

이후 현재 리파지토리를 [통합연결]해주면..

좌측에 ANY 옆에 AWS Lambda가 적용된 것을 알 수 있다.

그렇게되면

album_id 파라미터를 받아주는 트리거가 한개가 더 늘은 것을 알 수 있다.

728x90

댓글