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 작업
본문
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 — 서비스 오류