

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Riferimento all'API di telemetria Lambda
<a name="telemetry-api-reference"></a>

Utilizza l'endpoint dell'API di telemetria Lambda per sottoscrivere le estensioni ai flussi di telemetria. È possibile recuperare l'endpoint dell'API di telemetria dalla variabile di ambiente `AWS_LAMBDA_RUNTIME_API`. Per inviare una richiesta API, aggiungi la versione dell'API (`2022-07-01/`) e `telemetry/`. Esempio:

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

Per la definizione della specifica OpenAPI (OAS) della versione delle risposte alla sottoscrizione `2025-01-29`, consulta quanto segue:
+ **HTTP** — [telemetry-api-http-schema.zip](samples/events_http_schema_v2025_01_29.zip)
+ **TCP** [— .zip telemetry-api-tcp-schema](samples/events_tcp_schema_v2025_01_29.zip)

**Topics**
+ [Subscribe](#telemetry-subscribe-api)

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

Per sottoscrivere un flusso di telemetria, un'estensione Lambda può inviare una richiesta API Subscribe.
+ **Percorso** – `/telemetry`
+ **Metodo**: `PUT`
+ **Headers**
  + `Content-Type`: `application/json`
+ **Parametri del corpo della richiesta**
  + **schemaVersion**
    + Obbligatorio: sì
    + Tipo: String
    + Valori validi: `"2025-01-29"`, `"2022-12-13"` o `"2022-07-01"`
    + **Nota:** le istanze gestite Lambda richiedono. `"2025-01-29"` Questa versione è retrocompatibile con le funzioni Lambda (predefinite).
  + **destinazione**: le impostazioni di configurazione che definiscono la destinazione dell'evento di telemetria e il protocollo per la consegna degli eventi.
    + Obbligatorio: sì
    + Tipo: oggetto

      ```
      {
          "protocol": "HTTP",
          "URI": "http://sandbox.localdomain:8080"
      }
      ```
    + **protocollo**: il protocollo utilizzato da Lambda per inviare dati di telemetria.
      + Obbligatorio: sì
      + Tipo: String
      + Valori validi: `"HTTP"`\$1`"TCP"`
    + **URI**: l'URI a cui inviare i dati di telemetria.
      + Obbligatorio: sì
      + Tipo: String
    + Per ulteriori informazioni, consulta [Specifica di un protocollo di destinazione](telemetry-api.md#telemetry-api-destination).
  + **tipi**: i tipi di dati di telemetria che desideri siano sottoscritti dall'estensione.
    + Obbligatorio: sì
    + Tipo: array di stringhe
    + Valori validi: `"platform"`\$1`"function"`\$1`"extension"`
  + **buffering**: le impostazioni di configurazione per il buffering degli eventi.
    + Obbligatorio: no
    + Tipo: oggetto

      ```
      {
         "buffering": {
              "maxItems": 1000,
              "maxBytes": 256*1024,
              "timeoutMs": 100
         }
      }
      ```
    + **maxItems** – Il numero massimo di eventi da memorizzare nel buffer.
      + Obbligatorio: no
      + Tipo: numero intero
      + Predefinito: 1.000
      + Minimo: 1.000
      + Massimo: 10.000.
    + **maxBytes**: il volume massimo di dati di telemetria (in byte) da memorizzare nel buffer della memoria.
      + Obbligatorio: no
      + Tipo: numero intero
      + Predefinito: 262.144.
      + Minimo: 262.144.
      + Massimo: 1.048.576.
    + **timeoutMs** – Il tempo massimo (in millisecondi) per il buffer di un batch.
      + Obbligatorio: no
      + Tipo: numero intero
      + Predefinito: 1.000
      + Minimo: 25
      + Massimo: 30.000
    + Per ulteriori informazioni, consulta [Configurazione dell'utilizzo della memoria e del buffering](telemetry-api.md#telemetry-api-buffering).

### Esempio di richiesta API Subscribe
<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"
   }
}
```

Se la richiesta Subscribe ha esito positivo, il sottoscrittore riceve una risposta di operazione riuscita HTTP 200.

```
HTTP/1.1 200 OK
"OK"
```

Se la richiesta non riesce, l'estensione riceve una risposta di errore. Esempio:

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

Ecco alcuni codici di risposta aggiuntivi che l'estensione può ricevere:
+ 200 – Richiesta completata con successo
+ 202 – Richiesta accettata. Risposta alla richiesta di sottoscrizione nell'ambiente di test locale
+ 400: richiesta non valida
+ 500 – Errore servizio