View a markdown version of this page

Riferimento allo schema degli eventi dell'API di telemetria Lambda - AWS Lambda

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 allo schema degli eventi dell'API di telemetria Lambda

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/. Ad 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:

La tabella seguente è un riepilogo di tutti i tipi di oggetti Event supportati dall'API di telemetria.

Categoria Tipo di evento Description Schema dei registri di eventi

Evento della piattaforma

platform.initStart

Inizializzazione della funzione avviata.

Schema Platform.initStart

Evento della piattaforma

platform.initRuntimeDone

Inizializzazione della funzione completata.

Schema plataforma.init RuntimeDone

Evento della piattaforma

platform.initReport

Un rapporto sull'inizializzazione della funzione.

Schema Platform.initReport

Evento della piattaforma

platform.start

L'invocazione della funzione è stata avviata.

Schema platform.start

Evento della piattaforma

platform.runtimeDone

Il runtime ha terminato l'elaborazione di un evento con esito positivo o negativo.

Schema platform.runtimeDone

Evento della piattaforma

platform.report

Un rapporto sull'invocazione di una funzione.

Schema platform.report

Evento della piattaforma

platform.restoreStart

Il ripristino del runtime è iniziato.

Schema Piattaforma. RestoreStart

Evento della piattaforma

platform.restoreRuntimeDone

Il ripristino del runtime è stato completato.

Schema piattaforma. Restore RuntimeDone

Evento della piattaforma

platform.restoreReport

Rapporto di ripristino del runtime.

Schema Platform.RestoreReport

Evento della piattaforma

platform.telemetrySubscription

L'estensione che ha eseguito la sottoscrizione all'API di telemetria.

Schema Piattaforma. Abbonamento alla telemetria

Evento della piattaforma

platform.logsDropped

Lambda ha eliminato le voci del log.

Schema Platform.logs eliminati

Log delle funzioni

function

Una riga del log dal codice della funzione.

Schema funzione

Log di estensioni

extension

Una riga di log dal codice dell'estensione.

Schema Estensione

Tipi di oggetti degli eventi dell'API di telemetria

Questa sezione descrive in dettaglio i tipi di oggetti Event supportati dall'API di telemetria Lambda. Nelle descrizioni degli eventi, un punto interrogativo (?) indica che l'attributo potrebbe non essere presente nell'oggetto.

Platform.initStart

Un platform.initStart evento indica che la fase di inizializzazione della funzione di evento è iniziata. Un oggetto platform.initStart Event ha la seguente forma:

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

L'oggetto PlatformInitStart ha i seguenti attributi:

  • functionName: String

  • functionVersion: String

  • initializationType: oggetto InitType

  • instanceId?: String

  • istanzaMaxMemory? — Integer

  • phase: oggetto InitPhase

  • runtimeVersion?: String

  • durataVersionArn? — String

Di seguito è riportato un esempio Event di tipo platform.initStart:

{ "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 } }

plataforma.init RuntimeDone

Un platform.initRuntimeDone evento indica che la fase di inizializzazione della funzione di evento è stata completata. Un oggetto platform.initRuntimeDone Event ha la seguente forma:

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

L'oggetto PlatformInitRuntimeDone ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.initRuntimeDone:

{ "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

Un platform.initReport evento contiene un rapporto generale della fase di inizializzazione della funzione di evento. Un oggetto platform.initReport Event ha la seguente forma:

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

L'oggetto PlatformInitReport ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.initReport:

{ "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

Un platform.start evento indica che la fase di invocazione di Event Function è iniziata. Un oggetto platform.start Event ha la seguente forma:

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

L'oggetto PlatformStart ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.start:

{ "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

Un platform.runtimeDone evento indica che la fase di invocazione di Event Function è stata completata. Un oggetto platform.runtimeDone Event ha la seguente forma:

Istanze Lambda gestite

L'platform.runtimeDoneevento non è supportato per le istanze gestite Lambda. Le estensioni in esecuzione su istanze gestite non ricevono questo evento perché le estensioni non possono sottoscrivere l'INVOKEevento sulle istanze gestite. A causa del modello di esecuzione simultanea in cui è possibile elaborare più chiamate contemporaneamente, le estensioni non possono eseguire l'elaborazione post-invoca per le singole chiamate come avviene tradizionalmente con le funzioni Lambda (predefinite).

Per le istanze gestite, gli intervalli responseLatency e responseDuration gli intervalli normalmente inclusi sono invece disponibili nell'evento. platform.runtimeDone platform.report Per informazioni dettagliate, vedi platform.report.

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

L'oggetto PlatformRuntimeDone ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.runtimeDone:

{ "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

Un platform.report evento contiene un rapporto generale della fase di invocazione della funzione di evento. Un oggetto platform.report Event ha la seguente forma:

Istanze Lambda gestite

L'platform.reportevento per Lambda Managed Instances ha metriche e intervalli diversi rispetto alle funzioni Lambda (predefinite). Per le istanze gestite:

  • Spans: contiene responseLatency e responseDuration invece di. extensionOverhead Lo extensionOverhead span non è disponibile perché le estensioni non possono sottoscrivere l'INVOKEevento su Managed Instances a causa del modello di esecuzione simultanea.

  • Metriche: include solo. durationMs Le seguenti metriche non sono incluse:billedDurationMs, initDurationMsmaxMemoryUsedMB, e. memorySizeMB Queste metriche per richiamo non sono applicabili nell'ambiente di esecuzione simultanea. Per le metriche sull'utilizzo delle risorse, usa o Monitoraggio delle istanze gestite Lambda Lambda Insights.

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

L'oggetto PlatformReport ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.report:

{ "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", } }

Piattaforma. RestoreStart

Un platform.restoreStart evento indica che è iniziato un evento di ripristino dell'ambiente Event Function. In un evento di ripristino dell'ambiente, Lambda crea l'ambiente da uno snapshot memorizzato nella cache anziché inizializzarlo da zero. Per ulteriori informazioni, consulta SnapStart. Un oggetto platform.restoreStart Event ha la seguente forma:

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

L'oggetto PlatformRestoreStart ha i seguenti attributi:

  • functionName: String

  • functionVersion: String

  • instanceId?: String

  • istanzaMaxMemory? — String

  • runtimeVersion?: String

  • durataVersionArn? — String

Di seguito è riportato un esempio Event di tipo platform.restoreStart:

{ "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 } }

piattaforma. Restore RuntimeDone

Un platform.restoreRuntimeDone evento indica che un evento di ripristino dell'ambiente Event Function è stato completato. In un evento di ripristino dell'ambiente, Lambda crea l'ambiente da uno snapshot memorizzato nella cache anziché inizializzarlo da zero. Per ulteriori informazioni, consulta SnapStart. Un oggetto platform.restoreRuntimeDone Event ha la seguente forma:

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

L'oggetto PlatformRestoreRuntimeDone ha i seguenti attributi:

  • errorType?: String

  • spans? : elenco di oggetti Intervallo

  • status: oggetto Stato

Di seguito è riportato un esempio Event di tipo platform.restoreRuntimeDone:

{ "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

Un platform.restoreReport evento contiene un rapporto generale di un evento di ripristino di Event Function. Un oggetto platform.restoreReport Event ha la seguente forma:

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

L'oggetto PlatformRestoreReport ha i seguenti attributi:

Di seguito è riportato un esempio Event di tipo platform.restoreReport:

{ "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 } ] } }

estensione della piattaforma

Un evento extension contiene i log del codice dell'estensione. Un oggetto extension Event ha la seguente forma:

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

L'oggetto PlatformExtension ha i seguenti attributi:

  • events: elenco di String

  • name: String

  • state: String

Di seguito è riportato un esempio Event di tipo platform.extension:

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

Piattaforma. Abbonamento alla telemetria

Un evento platform.telemetrySubscription contiene informazioni su una sottoscrizione dell'estensione. Un oggetto platform.telemetrySubscription Event ha la seguente forma:

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

L'oggetto PlatformTelemetrySubscription ha i seguenti attributi:

  • name: String

  • state: String

  • tipi: elenco di String

Di seguito è riportato un esempio Event di tipo platform.telemetrySubscription:

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

Platform.logs eliminati

Un evento platform.logsDropped contiene informazioni sugli eventi eliminati. Lambda emette l'platform.logsDroppedevento quando una Event Function emette i log a una velocità troppo alta perché Lambda possa elaborarli. Quando Lambda non è in grado di inviare log a CloudWatch o verso l'estensione sottoscritta all'API di telemetria alla velocità con cui vengono prodotti dalla Event Function, elimina i log per evitare che l'esecuzione della funzione Event rallenti. Un oggetto platform.logsDropped Event ha la seguente forma:

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

L'oggetto PlatformLogsDropped ha i seguenti attributi:

  • droppedBytes: Integer

  • droppedRecords: Integer

  • reason: String

Di seguito è riportato un esempio Event di tipo platform.logsDropped:

{ "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" } }

funzione

Un function evento contiene i log del codice Event Function. Un oggetto function Event ha la seguente forma:

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

Il formato del record campo dipende dal fatto che i registri della funzione evento siano formattati in testo semplice o in formato JSON. Per ulteriori informazioni sulle opzioni di configurazione del formato dei log, vedere Configurazione dei formati di log JSON e testo normale

Di seguito è riportato un esempio di Event di tipo function in cui il formato di log è il testo normale:

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

Di seguito è riportato un esempio di Event di tipo function in cui il formato di log è JSON:

{ "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!" } }
Nota

Se la versione dello schema che stai utilizzando è precedente alla 2022-12-13 versione, "record" viene sempre visualizzata come stringa anche quando il formato di registrazione della funzione evento è configurato come JSON. Per le istanze gestite Lambda, è necessario utilizzare la versione dello schema. 2025-01-29

Estensione

Un evento extension contiene i log del codice dell'estensione. Un oggetto extension Event ha la seguente forma:

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

Il formato del record campo dipende dal fatto che i registri della funzione degli eventi siano formattati in testo semplice o in formato JSON. Per ulteriori informazioni sulle opzioni di configurazione del formato dei log, consulta Configurazione dei formati di log JSON e testo normale

Di seguito è riportato un esempio di Event di tipo extension in cui il formato di log è il testo normale:

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

Di seguito è riportato un esempio di Event di tipo extension in cui il formato di log è JSON:

{ "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!" } }
Nota

Se la versione dello schema che stai utilizzando è precedente alla 2022-12-13 versione, "record" viene sempre visualizzata come stringa anche quando il formato di registrazione della funzione evento è configurato come JSON. Per le istanze gestite Lambda, è necessario utilizzare la versione dello schema. 2025-01-29

Tipi di oggetti condivisi

Questa sezione descrive in dettaglio i tipi di oggetti condivisi supportati dall'API di telemetria Lambda.

InitPhase

Una stringa enum che descrive la fase in cui si verifica l'operazione di inizializzazione. Nella maggior parte dei casi, Lambda esegue il codice di inizializzazione della funzione evento durante la fase. init Tuttavia, in alcuni casi di errore, Lambda può eseguire nuovamente il codice di inizializzazione della funzione evento durante la fase. invoke (Questa è chiamata init soppressa.)

  • Tipo: String

  • Valori validi: init|invoke|snap-start

InitReportMetrics

Un oggetto che contiene parametri relativi a una fase di inizializzazione.

  • Tipo: Object

Un oggetto InitReportMetrics ha la seguente forma:

InitReportMetrics: Object - durationMs: Double

Di seguito è illustrato un esempio di oggetto InitReportMetrics di esempio:

{ "durationMs": 247.88 }

InitType

Una stringa enum che descrive come Lambda ha inizializzato l'ambiente.

  • Tipo: String

  • Valori validi: on-demand|provisioned-concurrency

ReportMetrics

Un oggetto che contiene i parametri di una fase completata.

  • Tipo: Object

Un oggetto ReportMetrics ha la seguente forma:

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

Di seguito è illustrato un esempio di oggetto ReportMetrics di esempio:

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

RestoreReportMetrics

Un oggetto che contiene i parametri di una fase di ripristino completata.

  • Tipo: Object

Un oggetto RestoreReportMetrics ha la seguente forma:

RestoreReportMetrics: Object - durationMs: Double

Di seguito è illustrato un esempio di oggetto RestoreReportMetrics di esempio:

{ "durationMs": 15.19 }

RuntimeDoneMetrics

Un oggetto che contiene parametri relativi a una fase di chiamata.

  • Tipo: Object

Un oggetto RuntimeDoneMetrics ha la seguente forma:

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

Di seguito è illustrato un esempio di oggetto RuntimeDoneMetrics di esempio:

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

Intervallo

Un oggetto che contiene i dettagli di un intervallo. Un intervallo rappresenta un'unità di lavoro o un'operazione in una traccia. Per ulteriori informazioni sugli span, consulta Span nella pagina Tracing API del sito Web di Docs. OpenTelemetry

Lambda supporta i seguenti intervalli per l'evento platform.RuntimeDone:

  • Lo responseLatency span descrive quanto tempo ha impiegato la Lambda Event Function per iniziare a inviare la risposta.

  • Lo responseDuration span descrive il tempo impiegato dalla Lambda Event Function per completare l'invio dell'intera risposta.

  • Lo runtimeOverhead span descrive quanto tempo ha impiegato il runtime Lambda per segnalare che è pronto per elaborare la successiva chiamata di Event Function. Questo è il tempo impiegato dal runtime per chiamare l'API di chiamata successiva per ottenere l'evento successivo dopo aver restituito la risposta della funzione Event.

Di seguito è illustrato un oggetto di intervallo responseLatency di esempio:

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

Stato

Un oggetto che descrive lo stato di una fase di inizializzazione o invocazione. Se lo stato è failure o error, l'oggetto Statuscontiene anche un campo errorType che descrive l'errore.

  • Tipo: Object

  • Valori di stato validi: success|failure|error|timeout

TraceContext

Un oggetto che descrive le proprietà di una traccia.

  • Tipo: Object

Un oggetto TraceContext ha la seguente forma:

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

Di seguito è illustrato un esempio di oggetto TraceContext di esempio:

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

TracingType

Una stringa enum che descrive il tipo di tracciamento in un oggetto TraceContext.

  • Tipo: String

  • Valori validi: X-Amzn-Trace-Id