Aws

ApiGW & Lambda에서 브라우저 분류하기

wngnl05 2024. 12. 24. 15:07

Lambda Function URL Code

더보기
import json

def lambda_handler(event, context):
    print(event)
    try:
        userAgent = event['headers']['user-agent'].lower()

        if 'edg' in userAgent:
            browser = 'This is Edge'
        elif 'trident' in userAgent or 'msie' in userAgent:
            browser = 'This is Internet Explorer'
        elif 'whale' in userAgent:
            browser = 'This is Whale'
        elif 'firefox' in userAgent:
            browser = 'This is Firefox'
        elif 'chrome' in userAgent:
            browser = 'This is Chrome'
        else:
            browser = 'Other Browser'

        return {
            'statusCode': 200,
            'body': json.dumps({'browser': browser})
        }
        
    except KeyError:
        return {
            'statusCode': 400,
            'body': json.dumps('User-Agent header is missing')
        }

ApiGW Code

더보기

ApiGateway - "통합 요청 설정" - "Lambda 프록시 통합"True로 변경 후

스테이지를 배포해주세요.

import json

def lambda_handler(event, context):
    print(event)
    try:
        # 이벤트에서 사용자 에이전트 헤더를 가져옴
        userAgent = event['headers']['User-Agent'].lower()

        # 사용자 에이전트를 기반으로 브라우저 식별
        if 'edg' in userAgent:
            browser = 'This is Edge'
        elif 'trident' in userAgent or 'msie' in userAgent:
            browser = 'This is Internet Explorer'
        elif 'whale' in userAgent:
            browser = 'This is Whale'
        elif 'firefox' in userAgent:
            browser = 'This is Firefox'
        elif 'chrome' in userAgent:
            browser = 'This is Chrome'
        else:
            browser = 'Other Browser'

        # 응답 반환
        return {
            'statusCode': 200,
            'body': json.dumps({'browser': browser})
        }
        
    except KeyError:
        # 사용자 에이전트 헤더가 없을 경우 에러 응답 반환
        return {
            'statusCode': 400,
            'body': json.dumps('User-Agent header is missing')
        }