

# Lambda Telemetry API `Event` 스키마 참조
<a name="telemetry-schema-reference"></a>

Lambda Telemetry API 엔드포인트를 사용하여 텔레메트리 스트림에 대한 확장을 구독할 수 있습니다. `AWS_LAMBDA_RUNTIME_API` 환경 변수에서 텔레메트리 API 엔드포인트를 검색할 수 있습니다. API 요청을 보내려면 API 버전(`2022-07-01/`) 및 `telemetry/`를 추가합니다. 예제:

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

구독 응답 버전 `2025-01-29`의 OpenAPI 사양(OAS) 정의는 다음을 참조하세요.
+ **HTTP** – [telemetry-api-http-schema.zip](samples/events_http_schema_v2025_01_29.zip)
+ **TCP** – [telemetry-api-tcp-schema.zip](samples/events_tcp_schema_v2025_01_29.zip)

다음 표에는 텔레메트리 API가 지원하는 모든 유형의 `Event` 객체가 요약되어 있습니다.


| 카테고리 | 이벤트 유형 | 설명 | 이벤트 레코드 스키마 | 
| --- | --- | --- | --- | 
|  플랫폼 이벤트  |  `platform.initStart`  |  함수 초기화가 시작되었습니다.  |  [`platform.initStart`](#platform-initStart) 스키마  | 
|  플랫폼 이벤트  |  `platform.initRuntimeDone`  |  함수 초기화가 완료되었습니다.  |  [`platform.initRuntimeDone`](#platform-initRuntimeDone) 스키마  | 
|  플랫폼 이벤트  |  `platform.initReport`  |  함수 초기화 보고서입니다.  |  [`platform.initReport`](#platform-initReport) 스키마  | 
|  플랫폼 이벤트  |  `platform.start`  |  함수 호출이 시작되었습니다.  |  [`platform.start`](#platform-start) 스키마  | 
|  플랫폼 이벤트  |  `platform.runtimeDone`  |  런타임이 이벤트 처리를 성공 또는 실패로 완료했습니다.  |  [`platform.runtimeDone`](#platform-runtimeDone) 스키마  | 
|  플랫폼 이벤트  |  `platform.report`  |  함수 호출 보고서입니다.  |  [`platform.report`](#platform-report) 스키마  | 
|  플랫폼 이벤트  |  `platform.restoreStart`  |  런타임 복원이 시작되었습니다.  |  [`platform.restoreStart`](#platform-restoreStart) 스키마  | 
|  플랫폼 이벤트  |  `platform.restoreRuntimeDone`  |  런타임 복원이 완료되었습니다.  |  [`platform.restoreRuntimeDone`](#platform-restoreRuntimeDone) 스키마  | 
|  플랫폼 이벤트  |  `platform.restoreReport`  |  런타임 복원 보고서.  |  [`platform.restoreReport`](#platform-restoreReport) 스키마  | 
|  플랫폼 이벤트  |  `platform.telemetrySubscription`  |  텔레메트리 API를 구독하는 확장입니다.  |  [`platform.telemetrySubscription`](#platform-telemetrySubscription) 스키마  | 
|  플랫폼 이벤트  |  `platform.logsDropped`  |  Lambda가 로그 항목을 삭제했습니다.  |  [`platform.logsDropped`](#platform-logsDropped) 스키마  | 
|  함수 로그  |  `function`  |  함수 코드의 로그 줄입니다.  |  [`function`](#telemetry-api-function) 스키마  | 
|  익스텐션 로그  |  `extension`  |  확장 코드의 로그 줄입니다.  |  [`extension`](#telemetry-api-extension) 스키마  | 

**Contents**
+ [텔레메트리 API `Event` 객체 유형](#telemetry-api-events)
  + [`platform.initStart`](#platform-initStart)
  + [`platform.initRuntimeDone`](#platform-initRuntimeDone)
  + [`platform.initReport`](#platform-initReport)
  + [`platform.start`](#platform-start)
  + [`platform.runtimeDone`](#platform-runtimeDone)
  + [`platform.report`](#platform-report)
  + [`platform.restoreStart`](#platform-restoreStart)
  + [`platform.restoreRuntimeDone`](#platform-restoreRuntimeDone)
  + [`platform.restoreReport`](#platform-restoreReport)
  + [`platform.extension`](#platform-extension)
  + [`platform.telemetrySubscription`](#platform-telemetrySubscription)
  + [`platform.logsDropped`](#platform-logsDropped)
  + [`function`](#telemetry-api-function)
  + [`extension`](#telemetry-api-extension)
+ [공유 객체 유형](#telemetry-api-objects)
  + [`InitPhase`](#InitPhase)
  + [`InitReportMetrics`](#InitReportMetrics)
  + [`InitType`](#InitType)
  + [`ReportMetrics`](#ReportMetrics)
  + [`RestoreReportMetrics`](#RestoreReportMetrics)
  + [`RuntimeDoneMetrics`](#RuntimeDoneMetrics)
  + [`Span`](#Span)
  + [`Status`](#Status)
  + [`TraceContext`](#TraceContext)
  + [`TracingType`](#TracingType)

## 텔레메트리 API `Event` 객체 유형
<a name="telemetry-api-events"></a>

이 섹션에서는 Lambda Telemetry API가 지원하는 `Event` 객체 유형을 자세히 설명합니다. 이벤트 설명에서 물음표(`?`)는 해당 속성이 객체에 없을 수 있음을 나타냅니다.

### `platform.initStart`
<a name="platform-initStart"></a>

`platform.initStart` 이벤트는 함수 초기화 단계가 시작되었음을 나타냅니다. `platform.initStart` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.initStart
- record: PlatformInitStart
```

`PlatformInitStart` 객체에는 다음 속성이 있습니다.
+ **functionName** - `String`
+ **functionVersion** - `String`
+ **initializationType** – ``InitType`` 객체
+ **instanceId?** - `String`
+ **instanceMaxMemory?** - `Integer`
+ **phase** – ``InitPhase`` 객체
+ **runtimeVersion?** – `String`
+ **runtimeVersionArn?** – `String`

다음은 `platform.initStart` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:00:15.064Z",
    "type": "platform.initStart",
    "record": {
        "initializationType": "on-demand",
        "phase": "init",
        "runtimeVersion": "nodejs-14.v3",
        "runtimeVersionArn": "arn",
        "functionName": "myFunction",
        "functionVersion": "$LATEST",
        "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e",
        "instanceMaxMemory": 256
    }
}
```

### `platform.initRuntimeDone`
<a name="platform-initRuntimeDone"></a>

`platform.initRuntimeDone` 이벤트는 함수 초기화 단계가 완료되었음을 나타냅니다. `platform.initRuntimeDone` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.initRuntimeDone
- record: PlatformInitRuntimeDone
```

`PlatformInitRuntimeDone` 객체에는 다음 속성이 있습니다.
+ **initializationType** – ``InitType`` 객체
+ **phase** – ``InitPhase`` 객체
+ **status** – ``Status`` 객체
+ **spans?** - ``Span`` 객체의 목록

다음은 `platform.initRuntimeDone` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:01:15.000Z",
    "type": "platform.initRuntimeDone",
    "record": {
        "initializationType": "on-demand"
        "status": "success",
        "spans": [
            {
                "name": "someTimeSpan",
                "start": "2022-06-02T12:02:33.913Z",
                "durationMs": 70.5
            }
        ]
    }
}
```

### `platform.initReport`
<a name="platform-initReport"></a>

`platform.initReport` 이벤트에는 함수 초기화 단계의 전체 보고서가 포함됩니다. `platform.initReport` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.initReport
- record: PlatformInitReport
```

`PlatformInitReport` 객체에는 다음 속성이 있습니다.
+ **errorType?** - string
+ **initializationType** – ``InitType`` 객체
+ **phase** – ``InitPhase`` 객체
+ **metrics** – ``InitReportMetrics`` 객체
+ **spans?** - ``Span`` 객체의 목록
+ **status** – ``Status`` 객체

다음은 `platform.initReport` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:01:15.000Z",
    "type": "platform.initReport",
    "record": {
        "initializationType": "on-demand",
        "status": "success",
        "phase": "init",
        "metrics": {
            "durationMs": 125.33
        },
        "spans": [
            {
                "name": "someTimeSpan",
                "start": "2022-06-02T12:02:33.913Z",
                "durationMs": 90.1
            }
        ]
    }
}
```

### `platform.start`
<a name="platform-start"></a>

`platform.start` 이벤트는 함수 호출 단계가 시작되었음을 나타냅니다. `platform.start` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.start
- record: PlatformStart
```

`PlatformStart` 객체에는 다음 속성이 있습니다.
+ **requestId** – `String`
+ **version?** – `String`
+ **tracing?** – ``TraceContext``

다음은 `platform.start` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:00:15.064Z",
    "type": "platform.start",
    "record": {
        "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa",
        "version": "$LATEST",
        "tracing": {
            "spanId": "54565fb41ac79632",
            "type": "X-Amzn-Trace-Id",
            "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1"
        }
    }
}
```

### `platform.runtimeDone`
<a name="platform-runtimeDone"></a>

`platform.runtimeDone` 이벤트는 함수 호출 단계가 완료되었음을 나타냅니다. `platform.runtimeDone` `Event` 객체의 형식은 다음과 같습니다.

**Lambda 관리형 인스턴스**  
Lambda 관리형 인스턴스에서는 `platform.runtimeDone` 이벤트가 지원되지 않습니다. 관리형 인스턴스에서 실행되는 확장은 관리형 인스턴스에서 이벤트를 구독할 수 없으므로 이 `INVOKE` 이벤트를 수신하지 않습니다. 여러 간접 호출을 동시에 처리할 수 있는 동시 실행 모델로 인해 확장은 Lambda(기본값) 함수에서와 같이 개별 간접 호출에 대한 간접 호출 후 처리를 수행할 수 없습니다.  
관리형 인스턴스의 경우 일반적으로 `platform.runtimeDone`에 포함된 `responseLatency` 및 `responseDuration` 스팬을 대신 `platform.report` 이벤트에서 사용할 수 있습니다. 세부 정보는 [`platform.report`](#platform-report) 섹션을 참조하세요.

```
Event: Object
- time: String
- type: String = platform.runtimeDone
- record: PlatformRuntimeDone
```

`PlatformRuntimeDone` 객체에는 다음 속성이 있습니다.
+ **errorType?** – `String`
+ **metrics?** – ``RuntimeDoneMetrics`` 객체
+ **requestId** – `String`
+ **status** – ``Status`` 객체
+ **spans?** - ``Span`` 객체의 목록
+ **tracing?** – ``TraceContext`` 객체

다음은 `platform.runtimeDone` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:01:15.000Z",
    "type": "platform.runtimeDone",
    "record": {
        "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa",
        "status": "success",
        "tracing": {
            "spanId": "54565fb41ac79632",
            "type": "X-Amzn-Trace-Id",
            "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1"
        },
        "spans": [
            {
                "name": "someTimeSpan",
                "start": "2022-08-02T12:01:23:521Z",
                "durationMs": 80.0
            }
        ],
        "metrics": {
            "durationMs": 140.0,
            "producedBytes": 16
        }
    }
}
```

### `platform.report`
<a name="platform-report"></a>

`platform.report` 이벤트에는 함수 간접 호출 단계의 전체 보고서가 포함됩니다. `platform.report` `Event` 객체의 형식은 다음과 같습니다.

**Lambda 관리형 인스턴스**  
Lambda 관리형 인스턴스의 `platform.report` 이벤트는 Lambda(기본값) 함수와 비교하여 지표와 스팬이 다릅니다. 관리형 인스턴스:  
**스팬**: `extensionOverhead` 대신 `responseLatency` 및 `responseDuration`을 포함합니다. 동시 실행 모델로 인해 확장이 관리형 인스턴스의 `INVOKE` 이벤트를 구독할 수 없으므로 `extensionOverhead` 스팬을 사용할 수 없습니다.
**지표**: `durationMs`만 포함합니다. `billedDurationMs`, `initDurationMs`, `maxMemoryUsedMB` 및 `memorySizeMB` 지표는 포함되지 않습니다. 이러한 간접 호출당 지표는 동시 실행 환경에 적용할 수 없습니다. 리소스 사용률 지표의 경우 [Lambda 관리형 인스턴스 모니터링](lambda-managed-instances-monitoring.md) 또는 [Lambda Insights](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-insights.html)를 사용합니다.

```
Event: Object
- time: String
- type: String = platform.report
- record: PlatformReport
```

`PlatformReport` 객체에는 다음 속성이 있습니다.
+ **metrics** – ``ReportMetrics`` 객체
+ **requestId** – `String`
+ **spans?** - ``Span`` 객체의 목록
+ **status** – ``Status`` 객체
+ **tracing?** – ``TraceContext`` 객체

다음은 `platform.report` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:01:15.000Z",
    "type": "platform.report",
    "record": {
        "metrics": {
            "billedDurationMs": 694,
            "durationMs": 693.92,
            "initDurationMs": 397.68,
            "maxMemoryUsedMB": 84,
            "memorySizeMB": 128
        },
        "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa",
    }
}
```

### `platform.restoreStart`
<a name="platform-restoreStart"></a>

`platform.restoreStart` 이벤트는 함수 환경 복원 이벤트가 시작되었음을 나타냅니다. 환경 복원 이벤트에서 Lambda는 처음부터 초기화하지 않고 캐싱된 스냅샷에서 환경을 생성합니다. 자세한 내용은 [Lambda SnapStart](snapstart.md) 섹션을 참조하세요. `platform.restoreStart` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.restoreStart
- record: PlatformRestoreStart
```

`PlatformRestoreStart` 객체에는 다음 속성이 있습니다.
+ **functionName** - `String`
+ **functionVersion** - `String`
+ **instanceId?** - `String`
+ **instanceMaxMemory?** - `String`
+ **runtimeVersion?** – `String`
+ **runtimeVersionArn?** – `String`

다음은 `platform.restoreStart` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:00:15.064Z",
    "type": "platform.restoreStart",
    "record": {
        "runtimeVersion": "nodejs-14.v3",
        "runtimeVersionArn": "arn",
        "functionName": "myFunction",
        "functionVersion": "$LATEST",
        "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e",
        "instanceMaxMemory": 256
    }
}
```

### `platform.restoreRuntimeDone`
<a name="platform-restoreRuntimeDone"></a>

`platform.restoreRuntimeDone` 이벤트는 함수 환경 복원 이벤트가 완료되었음을 나타냅니다. 환경 복원 이벤트에서 Lambda는 처음부터 초기화하지 않고 캐싱된 스냅샷에서 환경을 생성합니다. 자세한 내용은 [Lambda SnapStart](snapstart.md) 섹션을 참조하세요. `platform.restoreRuntimeDone` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.restoreRuntimeDone
- record: PlatformRestoreRuntimeDone
```

`PlatformRestoreRuntimeDone` 객체에는 다음 속성이 있습니다.
+ **errorType?** – `String`
+ **spans?** - ``Span`` 객체의 목록
+ **status** – ``Status`` 객체

다음은 `platform.restoreRuntimeDone` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:00:15.064Z",
    "type": "platform.restoreRuntimeDone",
    "record": {
        "status": "success",
        "spans": [
            {
                "name": "someTimeSpan",
                "start": "2022-08-02T12:01:23:521Z",
                "durationMs": 80.0
            }
        ]
    }
}
```

### `platform.restoreReport`
<a name="platform-restoreReport"></a>

`platform.restoreReport` 이벤트에는 함수 복원 이벤트의 전체 보고서가 포함됩니다. `platform.restoreReport` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.restoreReport
- record: PlatformRestoreReport
```

`PlatformRestoreReport` 객체에는 다음 속성이 있습니다.
+ **errorType?** - string
+ **metrics?** – ``RestoreReportMetrics`` 객체
+ **spans?** - ``Span`` 객체의 목록
+ **status** – ``Status`` 객체

다음은 `platform.restoreReport` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:00:15.064Z",
    "type": "platform.restoreReport",
    "record": {
        "status": "success",
        "metrics": {
            "durationMs": 15.19
        },
        "spans": [
            {
                "name": "someTimeSpan",
                "start": "2022-08-02T12:01:23:521Z",
                "durationMs": 30.0
            }
        ]
    }
}
```

### `platform.extension`
<a name="platform-extension"></a>

`extension` 이벤트에는 확장 코드의 로그가 포함됩니다. `extension` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = extension
- record: {}
```

`PlatformExtension` 객체에는 다음 속성이 있습니다.
+ **events** – `String`의 목록
+ **name** – `String`
+ **state** – `String`

다음은 `platform.extension` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:02:15.000Z",
    "type": "platform.extension",
    "record": {
        "events": [ "INVOKE", "SHUTDOWN" ],
        "name": "my-telemetry-extension",
        "state": "Ready"
    }
}
```

### `platform.telemetrySubscription`
<a name="platform-telemetrySubscription"></a>

`platform.telemetrySubscription` 이벤트에는 확장 구독에 대한 정보가 포함됩니다. `platform.telemetrySubscription` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.telemetrySubscription
- record: PlatformTelemetrySubscription
```

`PlatformTelemetrySubscription` 객체에는 다음 속성이 있습니다.
+ **name** – `String`
+ **state** – `String`
+ **types** – `String`의 목록

다음은 `platform.telemetrySubscription` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:02:35.000Z",
    "type": "platform.telemetrySubscription",
    "record": {
        "name": "my-telemetry-extension",
        "state": "Subscribed",
        "types": [ "platform", "function" ]
    }
}
```

### `platform.logsDropped`
<a name="platform-logsDropped"></a>

`platform.logsDropped` 이벤트에는 삭제된 이벤트에 대한 정보가 포함됩니다. 함수의 로그 출력 속도가 높아 Lambda에서 처리할 수 없는 경우에도 Lambda는 `platform.logsDropped` 이벤트를 발생시킵니다. Lambda에서 함수의 로그 생성 속도에 맞춰 CloudWatch 또는 텔레메트리 API가 구독한 확장으로 로그를 전송할 수 없는 경우 로그를 삭제하여 함수 실행 속도가 느려지는 것을 방지합니다. `platform.logsDropped` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = platform.logsDropped
- record: PlatformLogsDropped
```

`PlatformLogsDropped` 객체에는 다음 속성이 있습니다.
+ **droppedBytes** – `Integer`
+ **droppedRecords** – `Integer`
+ **reason** – `String`

다음은 `platform.logsDropped` 유형의 예제 `Event`입니다.

```
{
    "time": "2022-10-12T00:02:35.000Z",
    "type": "platform.logsDropped",
    "record": {
        "droppedBytes": 12345,
        "droppedRecords": 123,
        "reason": "Some logs were dropped because the downstream consumer is slower than the logs production rate"
    }
}
```

### `function`
<a name="telemetry-api-function"></a>

`function` 이벤트에는 함수 코드의 로그가 포함됩니다. `function` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = function
- record: {}
```

`record` 필드 형식은 함수의 로그 형식이 일반 텍스트 형식인지 JSON 형식인지에 따라 달라집니다. 로그 형식 구성 옵션에 대한 자세한 내용은 [JSON 및 일반 텍스트 로그 형식 구성](monitoring-cloudwatchlogs-logformat.md)를 참조하십시오.

다음은 로그 형식이 일반 텍스트인 `Event` 예 `function` 유형입니다.

```
{
    "time": "2022-10-12T00:03:50.000Z",
    "type": "function",
    "record": "[INFO] Hello world, I am a function!"
}
```

다음은 로그 형식이 JSON인 `Event` 예 `function` 유형입니다.

```
{
    "time": "2022-10-12T00:03:50.000Z",
    "type": "function",
    "record": {
        "timestamp": "2022-10-12T00:03:50.000Z",
        "level": "INFO",
        "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189",
        "message": "Hello world, I am a function!"
    }
}
```

**참고**  
사용 중인 스키마 버전이 `2022-12-13` 버전보다 이전인 경우 함수의 로깅 형식이 JSON으로 구성된 경우에도 `"record"`는 항상 문자열로 렌더링됩니다. Lambda 관리형 인스턴스의 경우 스키마 버전 `2025-01-29`를 사용해야 합니다.

### `extension`
<a name="telemetry-api-extension"></a>

`extension` 이벤트에는 확장 코드의 로그가 포함됩니다. `extension` `Event` 객체의 형식은 다음과 같습니다.

```
Event: Object
- time: String
- type: String = extension
- record: {}
```

`record` 필드 형식은 함수의 로그 형식이 일반 텍스트 형식인지 JSON 형식인지에 따라 달라집니다. 로그 형식 구성 옵션에 대한 자세한 내용은 [JSON 및 일반 텍스트 로그 형식 구성](monitoring-cloudwatchlogs-logformat.md)를 참조하십시오.

다음은 로그 형식이 일반 텍스트인 `Event` 예 `extension` 유형입니다.

```
{
    "time": "2022-10-12T00:03:50.000Z",
    "type": "extension",
    "record": "[INFO] Hello world, I am an extension!"
}
```

다음은 로그 형식이 JSON인 `Event` 예 `extension` 유형입니다.

```
{
    "time": "2022-10-12T00:03:50.000Z",
    "type": "extension",
    "record": {
       "timestamp": "2022-10-12T00:03:50.000Z",
       "level": "INFO",
       "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189",
       "message": "Hello world, I am an extension!"
    }    
}
```

**참고**  
사용 중인 스키마 버전이 `2022-12-13` 버전보다 이전인 경우 함수의 로깅 형식이 JSON으로 구성된 경우에도 `"record"`는 항상 문자열로 렌더링됩니다. Lambda 관리형 인스턴스의 경우 스키마 버전 `2025-01-29`를 사용해야 합니다.

## 공유 객체 유형
<a name="telemetry-api-objects"></a>

이 섹션에서는 Lambda Telemetry API가 지원하는 공유 객체 유형을 자세히 설명합니다.

### `InitPhase`
<a name="InitPhase"></a>

초기화 작업이 발생하는 단계를 설명하는 문자열 열거형입니다. 대부분의 경우 Lambda는 `init` 단계 중에 함수 초기화 코드를 실행합니다. 하지만 오류가 발생하면 Lambda가 `invoke` 단계 중에 함수 초기화 코드를 다시 실행할 수 있습니다. (이를 *억제된 초기화*라고 함)
+ **유형** – `String`
+ **유효한 값** – `init`\$1`invoke`\$1`snap-start`

### `InitReportMetrics`
<a name="InitReportMetrics"></a>

초기화 단계에 대한 지표를 포함하는 객체입니다.
+ **유형** – `Object`

`InitReportMetrics` 객체의 형식은 다음과 같습니다.

```
InitReportMetrics: Object
- durationMs: Double
```

다음은 `InitReportMetrics` 객체의 예입니다.

```
{
    "durationMs": 247.88
}
```

### `InitType`
<a name="InitType"></a>

Lambda가 환경을 초기화한 방법을 설명하는 문자열 열거형입니다.
+ **유형** – `String`
+ **유효한 값** – `on-demand`\$1`provisioned-concurrency`

### `ReportMetrics`
<a name="ReportMetrics"></a>

완료된 단계에 대한 지표가 포함된 객체입니다.
+ **유형** – `Object`

`ReportMetrics` 객체의 형식은 다음과 같습니다.

```
ReportMetrics: Object
- billedDurationMs: Integer
- durationMs: Double
- initDurationMs?: Double
- maxMemoryUsedMB: Integer
- memorySizeMB: Integer
- restoreDurationMs?: Double
```

다음은 `ReportMetrics` 객체의 예입니다.

```
{
    "billedDurationMs": 694,
    "durationMs": 693.92,
    "initDurationMs": 397.68,
    "maxMemoryUsedMB": 84,
    "memorySizeMB": 128
}
```

### `RestoreReportMetrics`
<a name="RestoreReportMetrics"></a>

완료된 복원 단계에 대한 지표가 포함된 객체입니다.
+ **유형** – `Object`

`RestoreReportMetrics` 객체의 형식은 다음과 같습니다.

```
RestoreReportMetrics: Object
- durationMs: Double
```

다음은 `RestoreReportMetrics` 객체의 예입니다.

```
{
    "durationMs": 15.19
}
```

### `RuntimeDoneMetrics`
<a name="RuntimeDoneMetrics"></a>

호출 단계에 대한 지표가 포함된 객체입니다.
+ **유형** – `Object`

`RuntimeDoneMetrics` 객체의 형식은 다음과 같습니다.

```
RuntimeDoneMetrics: Object
- durationMs: Double
- producedBytes?: Integer
```

다음은 `RuntimeDoneMetrics` 객체의 예입니다.

```
{
    "durationMs": 200.0,
    "producedBytes": 15
}
```

### `Span`
<a name="Span"></a>

범위에 대한 세부 정보가 포함된 객체입니다. 범위는 트레이스의 작업 또는 작업 단위를 나타냅니다. 범위에 대한 자세한 내용은 OpenTelemetry 문서 웹 사이트의 **추적 API** 페이지에서 [범위](https://opentelemetry.io/docs/reference/specification/trace/api/#span)를 참조하세요.

Lambda는 `platform.RuntimeDone` 이벤트에 대해 다음과 같은 범위를 지원합니다.
+ `responseLatency` 범위는 Lambda 함수가 응답의 전송을 시작하는 데 걸린 시간을 나타냅니다.
+ `responseDuration` 범위는 Lambda 함수가 전체 응답의 전송을 마치는 데 걸린 시간을 나타냅니다.
+ `runtimeOverhead` 범위는 Lambda 런타임이 다음 함수 간접 호출을 처리할 준비가 되었음을 알리는 데 걸린 시간을 나타냅니다. 이는 런타임이 함수 응답을 반환한 후 다음 이벤트를 가져오기 위해 [다음 간접 호출](runtimes-api.md#runtimes-api-next) API를 호출하는 데 걸린 시간입니다.

다음은 `responseLatency` 범위 객체의 예입니다.

```
{
        "name": "responseLatency", 
        "start": "2022-08-02T12:01:23.521Z",
        "durationMs": 23.02
      }
```

### `Status`
<a name="Status"></a>

초기화 또는 호출 단계의 상태를 설명하는 객체입니다. 상태가 `failure` 또는 `error` 인 경우`Status` 객체에는 오류를 설명하는 `errorType` 필드도 포함됩니다.
+ **유형** – `Object`
+ **유효한 상태 값** – `success`\$1`failure`\$1`error`\$1`timeout`

### `TraceContext`
<a name="TraceContext"></a>

트레이스의 속성을 설명하는 객체입니다.
+ **유형** – `Object`

`TraceContext` 객체의 형식은 다음과 같습니다.

```
TraceContext: Object
- spanId?: String
- type: TracingType enum
- value: String
```

다음은 `TraceContext` 객체의 예입니다.

```
{
    "spanId": "073a49012f3c312e",
    "type": "X-Amzn-Trace-Id",
    "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1"
}
```

### `TracingType`
<a name="TracingType"></a>

``TraceContext`` 객체의 추적 유형을 설명하는 문자열 열거형입니다.
+ **유형** – `String`
+ **유효한 값** – `X-Amzn-Trace-Id`