모니터링 대시보드에서 속성 변수로 여러 서버리스 함수 모니터링하기

모니터링 대시보드에서 속성 변수로 여러 서버리스 함수 모니터링하기 (Using property variables in monitoring dashboards to monitor multiple serverless functions)

CloudWatch 대시보드에 Lambda 함수 이름을 위한 속성 변수(property variable)를 추가하면 대시보드 하나로 여러 서버리스 함수의 지표를 전환하며 볼 수 있어요. 이 예제는 AWS CLI와 Bash 스크립트로 그런 대시보드를 구성하는 방법을 보여줘요.

출처: AWS Lambda 개발자 안내서

본문

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

  • 모니터링할 Lambda 함수를 만든다.
  • CloudWatch 대시보드를 만든다.
  • 대시보드에 속성 변수를 추가한다.
  • 리소스를 정리한다.

Bash (AWS CLI with Bash script)

#!/bin/bash

# CloudWatch Dashboard with Lambda Function Variable Script
# This script creates a CloudWatch dashboard with a property variable for Lambda function names

set -euo pipefail

# Security: Set restrictive umask
umask 0077

# Set up logging with secure permissions
LOG_FILE="cloudwatch-dashboard-script-v4.log"
touch "$LOG_FILE"
chmod 600 "$LOG_FILE"
echo "Starting script execution at $(date)" >> "$LOG_FILE"

# Function to log commands and their output (with sensitive data sanitization)
log_cmd() {
    local cmd="$1"
    local sanitized_cmd="${cmd//--password*/--password [REDACTED]}"
    sanitized_cmd="${sanitized_cmd//--secret*/--secret [REDACTED]}"
    echo "$(date): Running command: $sanitized_cmd" >> "$LOG_FILE"
    eval "$cmd" 2>&1 | tee -a "$LOG_FILE"
    return ${PIPESTATUS[0]}
}

이 스크립트는 안전한 파일 권한과 로깅(민감한 데이터는 [REDACTED] 처리), 오류 시 자동 정리(CloudWatch 대시보드·Lambda 함수·IAM 역할 삭제) 로직을 포함해요. Lambda 함수 2개를 만들고, 함수 이름을 속성 변수로 쓰는 CloudWatch 대시보드를 생성한 뒤 리소스를 정리하는 흐름이에요.

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

더 알아보기 (Learn more)