

# Lambda Telemetry API リファレンス
<a name="telemetry-api-reference"></a>

Lambda Telemetry API エンドポイントを使用して、拡張機能をテレメトリーストリームにサブスクライブします。Telemetry API エンドポイントは、`AWS_LAMBDA_RUNTIME_API` 環境変数から取得できます。API リクエストを送信するには、API バージョン (`2022-07-01/`) と `telemetry/` を付加します。例えば、次のようになります。

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

サブスクリプションレスポンスバージョン `2025-01-29` の OpenAPI Specification (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)

**Topics**
+ [

## Subscribe
](#telemetry-subscribe-api)

## Subscribe
<a name="telemetry-subscribe-api"></a>

Lambda 拡張機能は、テレメトリーストリームにサブスクライブするために Subscribe API リクエストを送信できます。
+ **パス** – `/telemetry`
+ **メソッド** – `PUT`
+ **ヘッダー**。
  + `Content-Type`: `application/json`
+ **リクエストボディパラメータ**
  + **schemaVersion**
    + Required: Yes
    + タイプ: 文字列
    + 有効な値: `"2025-01-29"`、`"2022-12-13"`、または `"2022-07-01"`
    + **注:** Lambda マネージドインスタンスには `"2025-01-29"` が必要です。このバージョンは、Lambda (デフォルト) 関数と下位互換性があります。
  + **destination** – テレメトリイベントの宛先とイベント配信のプロトコルを定義する設定。
    + 必須: はい
    + 型: オブジェクト

      ```
      {
          "protocol": "HTTP",
          "URI": "http://sandbox.localdomain:8080"
      }
      ```
    + **protocol** – Lambda がテレメトリデータを送信するために使用するプロトコル。
      + Required: Yes
      + 型: 文字列
      + 有効な値: `"HTTP"`\$1`"TCP"`
    + **URI** – テレメトリデータの送信先になる URI。
      + Required: Yes
      + タイプ: 文字列
    + 詳細については、「[宛先プロトコルの指定](telemetry-api.md#telemetry-api-destination)」を参照してください。
  + **types** – 拡張機能がサブスクライブするテレメトリのタイプ。
    + 必須: はい
    + 型: 文字列の配列
    + 有効な値: `"platform"`\$1`"function"`\$1`"extension"`
  + **buffering** – イベントバッファリングの設定。
    + 必須: いいえ
    + 型: オブジェクト

      ```
      {
         "buffering": {
              "maxItems": 1000,
              "maxBytes": 256*1024,
              "timeoutMs": 100
         }
      }
      ```
    + **MaxItems** – メモリでバッファするイベントの最大数。
      + 必須: いいえ
      + タイプ: 整数
      + デフォルト: 1,000
      + 最小: 1,000
      + 最大: 10,000
    + **maxBytes** – メモリでバッファするテレメトリの最大量 (バイト単位)。
      + 必須: いいえ
      + タイプ: 整数
      + デフォルト: 262,144
      + 最小: 262,144
      + 最大: 1,048,576
    + **timeoutMs** - バッチをバッファーする最大時間（ミリ秒単位）。
      + 必須: いいえ
      + タイプ: 整数
      + デフォルト: 1,000
      + 最小: 25
      + 最大: 30,000
    + 詳細については、「[メモリの使用量とバッファリングの設定](telemetry-api.md#telemetry-api-buffering)」を参照してください。

### Subscribe API リクエストの例
<a name="telemetry-subscribe-api-example"></a>

```
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 – サービスエラー