

# Referência da API de Telemetria do Lambda
<a name="telemetry-api-reference"></a>

Use o endpoint da API de Telemetria do Lambda para assinar extensões para fluxos de telemetria. É possível recuperar o endpoint da API de telemetria da variável de ambiente `AWS_LAMBDA_RUNTIME_API`. Para enviar uma solicitação de API, vincule a versão da API (`2022-07-01/`) e `telemetry/`. Por exemplo:

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

Para obter a definição da Especificação OpenAPI (OAS) da versão das respostas de assinatura `2025-01-29`, consulte os itens a seguir:
+ **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**
+ [

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

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

Para assinar um fluxo de telemetria, uma extensão do Lambda pode enviar uma solicitação para a API de assinatura.
+ **Caminho** – `/telemetry`
+ **Method** (Método): `PUT`
+ **Cabeçalhos**
  + `Content-Type`: `application/json`
+ **Parâmetros do corpo da solicitação**
  + **schemaVersion**
    + Obrigatório: Sim
    + Tipo: string
    + Valores válidos: `"2025-01-29"`, `"2022-12-13"` ou `"2022-07-01"`
    + **Observação:** as instâncias gerenciadas do Lambda exigem `"2025-01-29"`. Esta versão é compatível com versões anteriores das funções do Lambda (padrão).
  + **destination** (destino): as configurações que definem o destino do evento de telemetria e o protocolo para a entrega do evento.
    + Obrigatório: sim
    + Tipo: Objeto

      ```
      {
          "protocol": "HTTP",
          "URI": "http://sandbox.localdomain:8080"
      }
      ```
    + **protocol** (protocolo): o protocolo usado pelo Lambda para enviar dados de telemetria.
      + Obrigatório: Sim
      + Tipo: string
      + Valores válidos: `"HTTP"`\$1`"TCP"`
    + **URI**: o URI para o qual os dados de telemetria serão enviados.
      + Obrigatório: Sim
      + Tipo: string
    + Para obter mais informações, consulte [Como especificar um protocolo de destino](telemetry-api.md#telemetry-api-destination).
  + **types** (tipos): os tipos de telemetria que você deseja que a extensão assine.
    + Obrigatório: sim
    + Tipo: matriz de strings
    + Valores válidos: `"platform"`\$1`"function"`\$1`"extension"`
  + **buffering** (armazenamento em buffer): as configurações definidas para o armazenamento em buffer de eventos.
    + Obrigatório: não
    + Tipo: Objeto

      ```
      {
         "buffering": {
              "maxItems": 1000,
              "maxBytes": 256*1024,
              "timeoutMs": 100
         }
      }
      ```
    + **maxItems**: o número máximo de eventos a serem colocados em buffer na memória.
      + Obrigatório: não
      + Tipo: inteiro
      + Padrão: 1.000
      + Mínimo: 1.000
      + Máximo: 10.000.
    + **maxBytes**: o volume máximo de telemetria (em bytes) para armazenar em buffer na memória.
      + Obrigatório: não
      + Tipo: inteiro
      + Padrão: 262.144
      + Mínimo: 262.144
      + Máximo: 1.048.576
    + **timeoutMs**: o tempo máximo (em milissegundos) para colocar um lote em buffer.
      + Obrigatório: não
      + Tipo: inteiro
      + Padrão: 1.000
      + Mínimo: 25
      + Máximo: 30.000
    + Para obter mais informações, consulte [Como configurar o uso de memória e o armazenamento em buffer](telemetry-api.md#telemetry-api-buffering).

### Exemplo de solicitação para a API de assinatura
<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 a solicitação de assinatura obtiver êxito, a extensão receberá uma resposta de êxito HTTP 200:

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

Se a solicitação de assinatura falhar, a extensão receberá uma resposta de erro. Por exemplo:

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

Veja a seguir alguns códigos de resposta adicionais que a extensão pode receber:
+ 200: solicitação concluída com êxito
+ 202: solicitação aceita. Resposta à solicitação de assinatura no ambiente de teste local.
+ 400: solicitação inválida.
+ 500: erro do serviço