함수 이름을 변수로 하는 모니터링 대시보드 만들기

함수 이름을 변수로 하는 모니터링 대시보드 만들기 (Creating a monitoring dashboard with function name as a variable)

CloudWatch 대시보드에 Lambda 함수의 지표(metrics) 위젯을 넣을 때 함수 이름을 변수로 만들어 두면 한 대시보드에서 여러 Lambda 함수를 번갈아 모니터링할 수 있어요. 이 예제는 AWS CLI와 Bash 스크립트로 그런 대시보드를 만드는 방법을 보여줘요.

출처: AWS Lambda 개발자 안내서

본문

다음 코드 예제는 아래 작업을 수행하는 방법을 보여줘요:

  • CloudWatch 대시보드를 만든다.
  • 함수 이름 변수로 Lambda 지표 위젯을 추가한다.
  • 대시보드를 검증한다.
  • 리소스를 정리한다.

Bash (AWS CLI with Bash script)

#!/bin/bash

# Script to create a CloudWatch dashboard with Lambda function name as a variable
# This script creates a CloudWatch dashboard that allows you to switch between different Lambda functions

# Set up logging with secure permissions
LOG_FILE="${HOME}/.cloudwatch-dashboard-script.log"
touch "$LOG_FILE" && chmod 600 "$LOG_FILE"
exec > >(tee -a "$LOG_FILE") 2>&1

echo "$(date): Starting CloudWatch dashboard creation script"

# Security: Set strict error handling
set -uo pipefail
trap 'handle_error "Script failed at line $LINENO"' ERR

# Function to handle errors
handle_error() {
    local error_msg="${1:-Unknown error}"
    echo "ERROR: $error_msg" >&2
    echo "Resources created:"
    echo "- CloudWatch Dashboard: LambdaMetricsDashboard"
    echo ""
    echo "==========================================="
    echo "CLEANUP CONFIRMATION"
    echo "==========================================="
    echo "An error occurred. Proceeding with automatic cleanup..."
    echo "Cleaning up resources..."
    aws cloudwatch delete-dashboards --dashboard-names LambdaMetricsDashboard 2>/dev/null || true
    rm -f dashboard-body.json
    echo "Cleanup complete."
    exit 1
}

이 스크립트는 로깅 권한을 안전하게 설정하고, 계정의 리전과 Lambda 함수 목록을 확인한 뒤, 함수 이름을 변수로 사용하는 CloudWatch 대시보드(LambdaMetricsDashboard)를 만들어요. 함수가 없으면 테스트용 함수를 먼저 만들고, 실패 시 리소스를 자동 정리해요.

전체 스크립트와 실행 방법은 sample-developer-tutorials 리포지토리에서 확인할 수 있어요.

더 알아보기 (Learn more)