View a markdown version of this page

Lambda-Telemetrie-API-Ereignisschemareferenz - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lambda-Telemetrie-API-Ereignisschemareferenz

Verwenden Sie den Lambda-Telemetrie-API-Endpunkt, um Erweiterungen für Telemetrie-Streams zu abonnieren. Sie können den Telemtrie-API-Endpunkts aus der AWS_LAMBDA_RUNTIME_API-Umgebungsvariable abrufen. Um eine API-Anfrage zu senden, fügen Sie die API-Version (2022-07-01/) und telemetry/ an. Beispiel:

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

Die Definition der OpenAPI-Spezifikation (OAS) der Abonnementantwortversion 2025-01-29 finden Sie unter:

Die folgende Tabelle enthält eine Zusammenfassung aller Event-Objekttypen, die die Telemetrie-API unterstützt.

Kategorie Ereignistyp Description Schema der Ereignisaufzeichnung

Plattform-Ereignis

platform.initStart

Die Funktionsinitialisierung wurde gestartet.

Platform.InitStart-Schema

Plattform-Ereignis

platform.initRuntimeDone

Die Funktionsinitialisierung ist abgeschlossen.

platform.init RuntimeDone-Schema

Plattform-Ereignis

platform.initReport

Ein Bericht über die Funktionsinitialisierung.

Platform.InitReport-Schema

Plattform-Ereignis

platform.start

Der Funktionsaufruf wurde gestartet.

Plattform.Start-Schema

Plattform-Ereignis

platform.runtimeDone

Die Laufzeit hat die Verarbeitung eines Ereignisses erfolgreich oder mit einem Fehler abgeschlossen.

platform.runtimeDone-Schema

Plattform-Ereignis

platform.report

Ein Bericht über den Funktionsaufruf.

platform.report-Schema

Plattform-Ereignis

platform.restoreStart

Die Laufzeitwiederherstellung wurde gestartet.

Plattform. Neustart wiederherstellen-Schema

Plattform-Ereignis

platform.restoreRuntimeDone

Die Laufzeitwiederherstellung wurde abgeschlossen.

plattform.wiederherstellen RuntimeDone-Schema

Plattform-Ereignis

platform.restoreReport

Bericht über die Laufzeitwiederherstellung.

Platform.RestoreReport-Schema

Plattform-Ereignis

platform.telemetrySubscription

Die Erweiterung hat die Telemetrie-API abonniert.

Plattform.Telemetrieabonnement-Schema

Plattform-Ereignis

platform.logsDropped

Lambda hat die Protokolleinträge gelöscht.

Platform.Logs wurde gelöscht-Schema

Funktionsprotokolle

function

Eine Protokollzeile aus dem Funktionscode.

function-Schema

Erweiterungsprotokolle

extension

Eine Protokollzeile aus dem Erweiterungscode.

extension-Schema

Objekttypen für Telemetrie-API-Ereignisse

Dieser Abschnitt beschreibt die Arten der Event-Objekte, die die Lambda-Telemetrie-API unterstützt. In den Ereignisbeschreibungen weist ein Fragezeichen (?) darauf hin, dass das Attribut möglicherweise nicht in diesem Objekt vorhanden ist.

Platform.InitStart

Ein platform.initStart Ereignis zeigt an, dass die Initialisierungsphase der Event-Funktion gestartet wurde. Ein platform.initStart Event-Objekt hat die folgende Form:

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

Dieses PlatformInitStart-Objekt hat die folgenden Attribute:

  • functionName – String

  • functionVersion – String

  • initializationType – InitType-Objekt

  • instanceId? – String

  • Instanz? MaxMemory — Integer

  • phase – InitPhase-Objekt

  • runtimeVersion? – String

  • LaufzeitVersionArn? — String

Es folgt ein Beispiel für Event des Typs 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 } }

platform.init RuntimeDone

Ein platform.initRuntimeDone Ereignis zeigt an, dass die Initialisierungsphase der Event-Funktion abgeschlossen ist. Ein platform.initRuntimeDone Event-Objekt hat die folgende Form:

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

Dieses PlatformInitRuntimeDone-Objekt hat die folgenden Attribute:

Es folgt ein Beispiel für Event des Typs 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

Ein platform.initReport Ereignis enthält einen Gesamtbericht über die Initialisierungsphase der Event-Funktion. Ein platform.initReport Event-Objekt hat die folgende Form:

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

Dieses PlatformInitReport-Objekt hat die folgenden Attribute:

Es folgt ein Beispiel für Event des Typs 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 } ] } }

Plattform.Start

Ein platform.start Ereignis zeigt an, dass die Aufrufphase der Event-Funktion gestartet wurde. Ein platform.start Event-Objekt hat die folgende Form:

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

Dieses PlatformStart-Objekt hat die folgenden Attribute:

  • requestId – String

  • version? – String

  • tracing? – TraceContext

Es folgt ein Beispiel für Event des Typs 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

Ein platform.runtimeDone Ereignis zeigt an, dass die Aufrufphase der Event-Funktion abgeschlossen ist. Ein platform.runtimeDone Event-Objekt hat die folgende Form:

Von Lambda verwaltete Instances

Das platform.runtimeDone Ereignis wird für Lambda Managed Instances nicht unterstützt. Erweiterungen, die auf verwalteten Instanzen ausgeführt werden, erhalten dieses Ereignis nicht, da Erweiterungen das INVOKE Ereignis auf verwalteten Instanzen nicht abonnieren können. Aufgrund des Modells der gleichzeitigen Ausführung, bei dem mehrere Aufrufe gleichzeitig verarbeitet werden können, können Erweiterungen keine Verarbeitung nach dem Aufrufen für einzelne Aufrufe durchführen, wie dies üblicherweise bei Lambda-Funktionen (Standard) der Fall ist.

Bei verwalteten Instanzen sind die Bereiche responseLatency und, die normalerweise responseDuration enthalten sind, stattdessen im Ereignis verfügbar. platform.runtimeDone platform.report Details dazu finden Sie unter platform.report.

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

Dieses PlatformRuntimeDone-Objekt hat die folgenden Attribute:

Es folgt ein Beispiel für Event des Typs 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

Ein platform.report Ereignis enthält einen Gesamtbericht über die Aufrufphase der Ereignisfunktion. Ein platform.report Event-Objekt hat die folgende Form:

Von Lambda verwaltete Instances

Das platform.report Ereignis für Lambda Managed Instances hat im Vergleich zu Lambda-Funktionen (Standard) andere Metriken und Spannweiten. Für verwaltete Instanzen:

  • Spans: Enthält responseLatency und responseDuration statt. extensionOverhead Die extensionOverhead Spanne ist nicht verfügbar, da Erweiterungen das INVOKE Ereignis auf verwalteten Instanzen aufgrund des parallelen Ausführungsmodells nicht abonnieren können.

  • Metriken: Beinhaltet durationMs nur. Die folgenden Metriken sind nicht enthalten: billedDurationMsinitDurationMs,maxMemoryUsedMB, undmemorySizeMB. Diese Metriken pro Aufruf sind in der Umgebung für die gleichzeitige Ausführung nicht anwendbar. Verwenden Überwachung von mit Lambda verwalteten Instances Sie Lambda Insights für Kennzahlen zur Ressourcennutzung.

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

Dieses PlatformReport-Objekt hat die folgenden Attribute:

Es folgt ein Beispiel für Event des Typs 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", } }

Plattform. Neustart wiederherstellen

Ein platform.restoreStart Ereignis weist darauf hin, dass ein Ereignis zur Wiederherstellung der Event Function-Umgebung gestartet wurde. Bei einem Wiederherstellungsereignis einer Umgebung erstellt Lambda die Umgebung aus einem im Cache gespeicherten Snapshot, anstatt diese von Grund auf neu zu initialisieren. Weitere Informationen finden Sie unter SnapStart. Ein platform.restoreStart Event Objekt hat die folgende Form:

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

Dieses PlatformRestoreStart-Objekt hat die folgenden Attribute:

  • functionName – String

  • functionVersion – String

  • instanceId? – String

  • InstanzMaxMemory? — String

  • runtimeVersion? – String

  • LaufzeitVersionArn? — String

Es folgt ein Beispiel für Event des Typs 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 } }

plattform.wiederherstellen RuntimeDone

Ein platform.restoreRuntimeDone Ereignis weist darauf hin, dass ein Ereignis zur Wiederherstellung der Event Function-Umgebung abgeschlossen wurde. Bei einem Wiederherstellungsereignis einer Umgebung erstellt Lambda die Umgebung aus einem im Cache gespeicherten Snapshot, anstatt diese von Grund auf neu zu initialisieren. Weitere Informationen finden Sie unter SnapStart. Ein platform.restoreRuntimeDone Event Objekt hat die folgende Form:

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

Dieses PlatformRestoreRuntimeDone-Objekt hat die folgenden Attribute:

  • errorType? – String

  • spans? – Liste von Span-Objekten

  • status – Status-Objekt

Es folgt ein Beispiel für Event des Typs 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

Ein platform.restoreReport Ereignis enthält einen Gesamtbericht über ein Wiederherstellungsereignis für die Event-Funktion. Ein platform.restoreReport Event-Objekt hat die folgende Form:

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

Dieses PlatformRestoreReport-Objekt hat die folgenden Attribute:

Es folgt ein Beispiel für Event des Typs 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 } ] } }

Plattform.Erweiterung

Ein extension-Ereignis enthält Protokolle aus dem Erweiterungscode. Ein extension Event-Objekt hat die folgende Form:

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

Dieses PlatformExtension-Objekt hat die folgenden Attribute:

  • events – Liste von String

  • name – String

  • status – String

Es folgt ein Beispiel für Event des Typs platform.extension:

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

Plattform.Telemetrieabonnement

Ein platform.telemetrySubscription-Ereignis enthält Informationen zu einem Erweiterungsabonnement. Ein platform.telemetrySubscription Event-Objekt hat die folgende Form:

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

Dieses PlatformTelemetrySubscription-Objekt hat die folgenden Attribute:

  • name – String

  • status – String

  • types – Liste von String

Es folgt ein Beispiel für Event des Typs platform.telemetrySubscription:

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

Platform.Logs wurde gelöscht

Ein platform.logsDropped-Ereignis enthält Informationen über gelöschte Ereignisse. Lambda gibt das platform.logsDropped Ereignis aus, wenn eine Event-Funktion Logs mit einer zu hohen Rate ausgibt, als dass Lambda sie verarbeiten könnte. Wenn Lambda Protokolle nicht mit der Geschwindigkeit an CloudWatch oder an die Erweiterung senden kann, die die Telemetrie-API abonniert hat, werden Protokolle gelöscht, um zu verhindern, dass die Ausführung der Ereignisfunktion verlangsamt wird. Ein platform.logsDropped Event-Objekt hat die folgende Form:

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

Dieses PlatformLogsDropped-Objekt hat die folgenden Attribute:

  • droppedBytes – Integer

  • droppedRecords – Integer

  • reason – String

Es folgt ein Beispiel für Event des Typs 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" } }

function

Ein function Ereignis enthält Protokolle aus dem Code der Ereignisfunktion. Ein function Event-Objekt hat die folgende Form:

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

Das Format des record Felds hängt davon ab, ob die Protokolle Ihrer Event-Funktion im Klartext- oder JSON-Format formatiert sind. Weitere Informationen zu den Konfigurationsoptionen für das Protokollformat finden Sie unter Konfiguration der JSON- und Klartext-Protokollformate

Im Folgenden finden Sie ein Beispiel für Event vom Typ function, bei dem das Protokollformat Klartext ist:

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

Im Folgenden finden Sie ein Beispiel für Event vom Typ function, bei dem das Protokollformat JSON ist:

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

Wenn die von Ihnen verwendete Schemaversion älter als die 2022-12-13 Version ist, wird sie immer als Zeichenfolge gerendert, auch wenn das Protokollierungsformat Ihrer Event-Funktion als JSON konfiguriert ist. "record" Für Lambda Managed Instances müssen Sie die Schemaversion 2025-01-29 verwenden.

extension

Ein extension-Ereignis enthält Protokolle aus dem Erweiterungscode. Ein extension Event-Objekt hat die folgende Form:

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

Das Format des record Felds hängt davon ab, ob die Logs Ihrer Event-Funktion im Klartext- oder JSON-Format formatiert sind. Weitere Informationen zu den Konfigurationsoptionen für das Protokollformat finden Sie unter Konfiguration der JSON- und Klartext-Protokollformate

Im Folgenden finden Sie ein Beispiel für Event vom Typ extension, bei dem das Protokollformat Klartext ist:

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

Im Folgenden finden Sie ein Beispiel für Event vom Typ extension, bei dem das Protokollformat JSON ist:

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

Wenn die von Ihnen verwendete Schemaversion älter als die 2022-12-13 Version ist, wird sie immer als Zeichenfolge gerendert, auch wenn das Protokollierungsformat Ihrer Event-Funktion als JSON konfiguriert ist. "record" Für Lambda Managed Instances müssen Sie die Schemaversion 2025-01-29 verwenden.

Freigegebene Objekttypen

Dieser Abschnitt beschreibt die Arten von freigegebenen Objekten, die die Lambda-Telemetrie-API unterstützt.

InitPhase

Eine Zeichenfolgenaufzählung, die die Phase beschreibt, in der der Initialisierungsschritt auftritt. In den meisten Fällen führt Lambda den Initialisierungscode der Event Function während der init Phase aus. In einigen Fehlerfällen kann Lambda jedoch den Initialisierungscode der Ereignisfunktion während der Phase erneut ausführen. invoke (Dies wird als suppressed init bezeichnet.)

  • Typ: – String

  • Gültige Werte – init|invoke|snap-start

InitReportMetrics

Ein Objekt, das Metriken zu einer Initialisierungsphase enthält.

  • Typ: – Object

Ein InitReportMetrics-Objekt hat die folgende Form:

InitReportMetrics: Object - durationMs: Double

Es folgt ein Beispiel für ein InitReportMetrics-Objekt:

{ "durationMs": 247.88 }

InitType

Eine Zeichenfolgenaufzählung, die beschreibt, wie Lambda die Umgebung initialisiert hat.

  • Typ: – String

  • Gültige Werte – on-demand|provisioned-concurrency

ReportMetrics

Ein Objekt, das Details zu einer abgeschlossenen Phase enthält.

  • Typ: – Object

Ein ReportMetrics-Objekt hat die folgende Form:

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

Es folgt ein Beispiel für ein ReportMetrics-Objekt:

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

RestoreReportMetrics

Ein Objekt, das Metriken über eine abgeschlossene Wiederherstellungsphase enthält.

  • Typ: – Object

Ein RestoreReportMetrics-Objekt hat die folgende Form:

RestoreReportMetrics: Object - durationMs: Double

Es folgt ein Beispiel für ein RestoreReportMetrics-Objekt:

{ "durationMs": 15.19 }

RuntimeDoneMetrics

Ein Objekt, das Metriken über eine Aufrufphase enthält.

  • Typ: – Object

Ein RuntimeDoneMetrics-Objekt hat die folgende Form:

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

Es folgt ein Beispiel für ein RuntimeDoneMetrics-Objekt:

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

Span

Ein Objekt, das Details einem Span enthält. Ein Span stellt eine Arbeitseinheit oder einen Vorgang in einer Ablaufverfolgung dar. Weitere Informationen zu Spans finden Sie unter Span auf der Tracing-API-Seite der Docs-Website. OpenTelemetry

Lambda unterstützt die folgenden zwei Bereiche für das platform.RuntimeDone-Ereignis:

  • Die responseLatency Spanne beschreibt, wie lange es gedauert hat, bis Ihre Lambda-Event-Funktion mit dem Senden der Antwort begonnen hat.

  • Die responseDuration Spanne beschreibt, wie lange es gedauert hat, bis Ihre Lambda-Ereignisfunktion das Senden der gesamten Antwort abgeschlossen hat.

  • Die runtimeOverhead Spanne beschreibt, wie lange es gedauert hat, bis die Lambda-Laufzeit signalisiert hat, dass sie bereit ist, den nächsten Aufruf der Event-Funktion zu verarbeiten. So lange hat die Laufzeit gedauert, bis die API für den nächsten Aufruf aufgerufen wurde, um das nächste Ereignis abzurufen, nachdem Ihre Antwort auf die Event-Funktion zurückgegeben wurde.

Es folgt ein Beispiel für ein Objekt des responseLatency-Spans:

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

Status

Ein Objekt, das den Status einer Initialisierungs- oder Aufrufphase beschreibt. Wenn der Status entweder failure oder error ist, dann enthält das Status-Objekt auch ein errorType-Feld, das den Fehler beschreibt.

  • Typ: – Object

  • Gültige Statuswerte – success|failure|error|timeout

TraceContext

Ein Objekt, das die Eigenschaften einer Ablaufverfolgung beschreibt.

  • Typ: – Object

Ein TraceContext-Objekt hat die folgende Form:

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

Es folgt ein Beispiel für ein TraceContext-Objekt:

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

TracingType

Eine Zeichenfolgenaufzählung, die den Ablaufverfolgungstyp in einem TraceContext-Objekt beschreibt.

  • Typ: – String

  • Gültige Werte – X-Amzn-Trace-Id