Lambda 텔레메트리 API 레퍼런스

Lambda 텔레메트리 API 레퍼런스 (Lambda Telemetry API reference)

Lambda 텔레메트리 API(Telemetry API) 엔드포인트를 사용해 확장(extension)을 텔레메트리 스트림에 구독시켜요. AWS_LAMBDA_RUNTIME_API 환경 변수에서 텔레메트리 API 엔드포인트를 가져올 수 있어요. API 요청을 보내려면 API 버전(2022-07-01/)과 telemetry/를 붙여요. 예를 들면 다음과 같아요.

http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry/

구독 응답 버전 2025-01-29의 OpenAPI Specification(OAS) 정의는 다음을 참고하세요.

API 작업

출처: AWS Lambda 개발자 안내서

본문

Subscribe

텔레메트리 스트림에 구독하려면 Lambda 확장이 Subscribe API 요청을 보낼 수 있어요.

  • Path — /telemetry
  • Method — PUT
  • Headers
    • Content-Type: application/json
  • Request body parameters
    • schemaVersion

      • 필수: 예
      • 유형: String
      • 유효 값: "2025-01-29", "2022-12-13" 또는 "2022-07-01"
      • 참고: Lambda Managed Instances는 "2025-01-29"를 요구해요. 이 버전은 Lambda(기본) 함수와 하위 호환돼요.
    • destination — 텔레메트리 이벤트 대상과 이벤트 전달 프로토콜을 정의하는 구성 설정.

      • 필수: 예
      • 유형: Object
      {
          "protocol": "HTTP",
          "URI": "http://sandbox.localdomain:8080"
      }
      
      • protocol — Lambda가 텔레메트리 데이터를 보내는 데 사용하는 프로토콜.
        • 필수: 예
        • 유형: String
        • 유효 값: "HTTP" 또는 "TCP"
      • URI — 텔레메트리 데이터를 보낼 URI.
        • 필수: 예
        • 유형: String
      • 자세한 내용은 대상 프로토콜 지정하기를 참고하세요.
    • types — 확장이 구독하려는 텔레메트리 유형.

      • 필수: 예
      • 유형: 문자열 배열
      • 유효 값: "platform", "function", "extension"
    • buffering — 이벤트 버퍼링 구성 설정.

      • 필수: 아니요
      • 유형: Object
      {
         "buffering": {
              "maxItems": 1000,
              "maxBytes": 256*1024,
              "timeoutMs": 100
         }
      }
      
      • maxItems — 메모리에 버퍼링할 최대 이벤트 수.
        • 필수: 아니요
        • 유형: Integer
        • 기본값: 1,000
        • 최소: 1,000
        • 최대: 10,000
      • maxBytes — 메모리에 버퍼링할 최대 텔레메트리 용량(바이트).
        • 필수: 아니요
        • 유형: Integer
        • 기본값: 262,144
        • 최소: 262,144
        • 최대: 1,048,576
      • timeoutMs — 배치를 버퍼링할 최대 시간(밀리초).
        • 필수: 아니요
        • 유형: Integer
        • 기본값: 1,000
        • 최소: 25
        • 최대: 30,000
      • 자세한 내용은 메모리 사용량과 버퍼링 구성하기를 참고하세요.

예시 Subscribe API 요청

PUT http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry HTTP/1.1
{
   "schemaVersion": "2025-01-29",
   "types": [
        "platform",
        "function",
        "extension"
   ],
   "buffering": {
        "maxItems": 1000,
        "maxBytes": 256*1024,
        "timeoutMs": 100
   },
   "destination": {
        "protocol": "HTTP",
        "URI": "http://sandbox.localdomain:8080"
   }
}

Subscribe 요청이 성공하면 확장은 HTTP 200 성공 응답을 받아요.

HTTP/1.1 200 OK
"OK"

Subscribe 요청이 실패하면 확장은 오류 응답을 받아요. 예를 들면 다음과 같아요.

HTTP/1.1 400 OK
{
    "errorType": "ValidationError",
    "errorMessage": "URI port is not provided; types should not be empty"
}

확장이 받을 수 있는 추가 응답 코드는 다음과 같아요.

  • 200 — 요청이 성공적으로 완료됨
  • 202 — 요청 수락됨. 로컬 테스트 환경의 구독 요청 응답
  • 400 — 잘못된 요청
  • 500 — 서비스 오류

더 알아보기 (Learn more)