Lambda 런타임 버전 변경 식별하기
Lambda 런타임 버전 변경 식별하기 (Identifying Lambda runtime version changes)
런타임 버전 번호와 ARN은 Lambda가 새 실행 환경(execution environment)을 만들 때마다 CloudWatch Logs로 내보내는 INIT_START 로그 줄에 기록돼요. 실행 환경은 모든 함수 호출에 같은 런타임 버전을 사용하기 때문에, Lambda는 초기화(init) 단계를 실행할 때만 INIT_START 로그 줄을 내보내요. Lambda는 함수 호출마다 이 로그 줄을 내보내지 않아요. Lambda는 로그 줄을 CloudWatch Logs로 내보내지만 콘솔에서는 보이지 않아요.
참고 런타임 버전 번호는 항상 순차적이지는 않아요. 예를 들어 버전 42 다음에 버전 45가 올 수 있어요.
예시 INIT_START 로그 줄
INIT_START Runtime Version: python:3.13.v14 Runtime Version ARN: arn:aws:lambda:eu-south-1::runtime:7b620fc2e66107a1046b140b9d320295811af3ad5d4c6a011fad1fa65127e9e6
로그를 직접 다루는 대신 Amazon CloudWatch Contributor Insights로 런타임 버전 사이의 전환을 식별할 수 있어요. 다음 규칙은 각 INIT_START 로그 줄에서 서로 다른 런타임 버전을 집계(count)해요. 이 규칙을 사용하려면 예시 로그 그룹 이름 /aws/lambda/*를 함수 또는 함수 그룹에 맞는 적절한 접두어로 바꿔요.
{
"Schema": {
"Name": "CloudWatchLogRule",
"Version": 1
},
"AggregateOn": "Count",
"Contribution": {
"Filters": [
{
"Match": "eventType",
"In": [
"INIT_START"
]
}
],
"Keys": [
"runtimeVersion",
"runtimeVersionArn"
]
},
"LogFormat": "CLF",
"LogGroupNames": [
"/aws/lambda/*"
],
"Fields": {
"1": "eventType",
"4": "runtimeVersion",
"8": "runtimeVersionArn"
}
}
다음 CloudWatch Contributor Insights 보고서는 앞 규칙이 포착한 런타임 버전 전환의 예시를 보여줘요. 주황색 선은 이전 런타임 버전(python:3.13.v12)의 실행 환경 초기화를, 파란색 선은 새 런타임 버전(python:3.13.v14)의 실행 환경 초기화를 보여줘요.
본문
INIT_START 로그 줄은 실행 환경이 처음 만들어지는 시점, 즉 콜드 스타트 때만 기록돼요. 그래서 런타임 버전 전환을 감지하려면 실행 환경이 새로 생성될 때마다 나타나는 이 줄을 모아 비교하면 돼요. CloudWatch Contributor Insights 규칙을 쓰면 로그를 직접 뒤지는 대신 런타임 버전과 ARN을 자동으로 집계해서, Lambda가 새 런타임으로 올라가는 전환 시점을 한눈에 파악할 수 있어요.