함수 이름을 변수로 하는 모니터링 대시보드 만들기
함수 이름을 변수로 하는 모니터링 대시보드 만들기 (Creating a monitoring dashboard with function name as a variable)
CloudWatch 대시보드에 Lambda 함수의 지표(metrics) 위젯을 넣을 때 함수 이름을 변수로 만들어 두면 한 대시보드에서 여러 Lambda 함수를 번갈아 모니터링할 수 있어요. 이 예제는 AWS CLI와 Bash 스크립트로 그런 대시보드를 만드는 방법을 보여줘요.
본문
다음 코드 예제는 아래 작업을 수행하는 방법을 보여줘요:
- 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 리포지토리에서 확인할 수 있어요.