본문 바로가기
Research/AWS

AWS Lambda_REST API Trigger로 함수 호출하기

by RIEM 2023. 4. 12.
728x90

자료 : https://hello-bryan.tistory.com/456

이번에는 REST API를 사용하는 트리거를 만들어보자.

API 게이트웨이 [트리거 추가] 버튼 클릭

이렇게 옵션 선택!

 

REST API 부분 추가

# 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)

        # HTTP API
        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

        # REST API
        if event['httpMethod'] == 'POST':
            req_data = json.loads(event['body']) #JSNO 처리
            album = next(filter(lambda x: x['id'] == req_data['album_id'], album_list), None)
            body = album if album else f'not found album id : {event["album_id"]}'
            
    return {
        'statusCode': status_code,
        'body': json.dumps(body)
    }

이전 방식과 유사하지만 코드만 좀 다를 분이다.

요청 시 POSTMAN으로 json body에 { "album_id": 15} 이런 형식으로 보내주면 된다.

728x90

댓글