[파이썬] 파이썬 애플리케이션의 AWS Lambda 테스트 및 로깅 설정

AWS Lambda는 클라우드 기반의 서버리스 컴퓨팅 플랫폼으로, 여러분의 파이썬 애플리케이션을 실행하고 관리할 수 있습니다. 이 글에서는 AWS Lambda 애플리케이션을 테스트하고 로깅을 설정하는 방법에 대해 알아보겠습니다.

AWS Lambda 테스트

AWS Lambda 애플리케이션을 테스트하는 가장 간단한 방법은 이벤트로 호출해보는 것입니다. 이벤트는 애플리케이션의 입력으로 사용됩니다. AWS 콘솔이나 AWS CLI를 사용하여 Lambda 함수에 이벤트를 전달할 수 있습니다.

다음은 간단한 파이썬 함수를 테스트하기 위해 AWS CLI를 사용하는 예시입니다.

# lambda_function.py

import json

def lambda_handler(event, context):
    name = event['name']
    message = f"Hello, {name}!"
    return {
        'statusCode': 200,
        'body': json.dumps(message)
    }

AWS CLI를 사용하여 이벤트를 전달하려면 다음 명령어를 실행합니다.

aws lambda invoke --function-name lambda_function --payload '{"name": "John"}' output.txt

위 명령어는 “lambda_function”이라는 Lambda 함수를 호출하고, 이벤트로 {“name”: “John”}을 전달합니다. 실행 결과는 “output.txt” 파일에 저장됩니다.

로깅 설정

AWS Lambda에서는 CloudWatch Logs를 사용하여 애플리케이션의 로그를 기록합니다. 로깅을 설정하여 애플리케이션의 실행 상태 및 오류를 모니터링할 수 있습니다.

파이썬 애플리케이션에서 로그를 출력하려면 print문 대신에 logger를 사용하는 것이 좋습니다. loggerlogging 모듈을 사용하여 초기화할 수 있습니다.

# lambda_function.py

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
    logger.info("Lambda function started.")
    
    name = event['name']
    message = f"Hello, {name}!"
    logger.info("Response generated.")
    
    return {
        'statusCode': 200,
        'body': json.dumps(message)
    }

위 예시에서는 logger를 사용하여 info 레벨의 로그 메세지를 출력하고 있습니다. 이러한 로그는 CloudWatch Logs에 저장되어 나중에 검색하거나 분석할 수 있습니다.

CloudWatch Logs에 로그를 보내기 위해 추가적인 설정이 필요할 수 있습니다. Lambda 함수를 생성하거나 편집할 때 CloudWatch 로그 그룹 및 로그 스트림을 구성할 수 있습니다.

위에서 작성한 파이썬 애플리케이션의 로그를 확인하기 위해 CloudWatch Logs 콘솔을 방문하거나, AWS CLI를 사용하여 다음 명령어를 실행할 수 있습니다.

aws logs filter-log-events --log-group-name /aws/lambda/lambda_function

위 명령어는 “lambda_function” Lambda 함수의 로그를 필터링하여 출력합니다.

AWS Lambda의 테스트와 로깅 설정을 통해 애플리케이션을 효과적으로 개발하고 모니터링할 수 있습니다.