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)의 실행 환경 초기화를 보여줘요.

출처: AWS Lambda 개발자 안내서

본문

INIT_START 로그 줄은 실행 환경이 처음 만들어지는 시점, 즉 콜드 스타트 때만 기록돼요. 그래서 런타임 버전 전환을 감지하려면 실행 환경이 새로 생성될 때마다 나타나는 이 줄을 모아 비교하면 돼요. CloudWatch Contributor Insights 규칙을 쓰면 로그를 직접 뒤지는 대신 런타임 버전과 ARN을 자동으로 집계해서, Lambda가 새 런타임으로 올라가는 전환 시점을 한눈에 파악할 수 있어요.

더 알아보기 (Learn more)