Referência da API de Telemetria do Lambda - AWS Lambda

Referência da API de Telemetria do Lambda

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 2022-12-13, consulte os itens a seguir:

Operações de API

Assinar

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: "2022-12-13" ou "2022-07-01"

    • 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"|"TCP"

      • URI: o URI para o qual os dados de telemetria serão enviados.

        • Obrigatório: sim

        • Tipo: String

      • Para ter mais informações, consulte Como especificar um protocolo de destino.

    • 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"|"function"|"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 ter mais informações, consulte Como configurar o uso de memória e o armazenamento em buffer.

Exemplo de solicitação para a API de assinatura

PUT http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry HTTP/1.1 { "schemaVersion": "2022-12-13", "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 sucesso 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