View a markdown version of this page

Référence du schéma d'événement de l'API de télémétrie Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Référence du schéma d'événement de l'API de télémétrie Lambda

Utilisez le point de terminaison de l’API de télémétrie Lambda pour abonner des extensions aux flux de télémétrie. Vous pouvez extraire le point de terminaison d’API de télémétrie à partir de la variable d’environnement AWS_LAMBDA_RUNTIME_API. Pour envoyer une demande d’API, ajoutez la version de l’API (2022-07-01/) et telemetry/. Par exemple :

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

Pour la définition de la spécification OpenAPI (OAS) de la version des réponses d’abonnement 2025-01-29, voir ce qui suit :

Le tableau suivant est un résumé de tous les types d’objets Event que l’API de télémétrie prend en charge.

Catégorie Type d’événement Description Schéma d’enregistrement des événements

Événement de plateforme

platform.initStart

L’initialisation de la fonction a commencé.

Schéma Platform.initStart

Événement de plateforme

platform.initRuntimeDone

L’initialisation de la fonction est terminée.

Schéma platform.init RuntimeDone

Événement de plateforme

platform.initReport

Un rapport d’initialisation de la fonction.

Schéma Rapport Platform.init

Événement de plateforme

platform.start

L’invocation de la fonction a commencé.

Schéma platform.start

Événement de plateforme

platform.runtimeDone

L’environnement d’exécution a fini de traiter un événement avec succès ou échec.

Schéma platform.runtimeDone

Événement de plateforme

platform.report

Un rapport sur l’invocation de la fonction.

Schéma platform.rapport

Événement de plateforme

platform.restoreStart

La restauration de l’exécution a commencé.

Schéma Platform.restoRestart

Événement de plateforme

platform.restoreRuntimeDone

La restauration de l’exécution est terminée.

Schéma platform.restore RuntimeDone

Événement de plateforme

platform.restoreReport

Le rapport de restauration de d’exécution.

Schéma Platform.RestoreReport

Événement de plateforme

platform.telemetrySubscription

L’extension s’est abonnée à l’API de télémétrie.

Schéma Plateforme.Abonnement à la télémétrie

Événement de plateforme

platform.logsDropped

Les entrées de journal abandonnées par Lambda.

Schéma Plate-forme. LogsDropped

Journaux de fonctions

function

Une ligne de journal du code de la fonction.

Schéma fonction

Journaux d’extension

extension

Une ligne de journal du code de l’extension.

Schéma Extension

Types d'objets d'événements de l'API de télémétrie

Cette section détaille les types d’objets Event que l’API de télémétrie Lambda prend en charge. Dans les descriptions d’événements, un point d’interrogation (?) indique que l’attribut peut ne pas être présent dans l’objet.

Platform.initStart

Un platform.initStart événement indique que la phase d'initialisation de la fonction d'événement a commencé. Un objet Event platform.initStart a la forme suivante :

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

L’objet PlatformInitStart possède les attributs suivants :

  • functionName – String

  • functionVersion – String

  • InitializationType – Objet InitType

  • instanceId? – String

  • un exemple MaxMemory ? — Integer

  • phase – Objet InitPhase

  • runtimeVersion? – String

  • durée d'exécution VersionArn ? — String

Voici un exemple de Event de type 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

Un platform.initRuntimeDone événement indique que la phase d'initialisation de la fonction d'événement est terminée. Un objet Event platform.initRuntimeDone a la forme suivante :

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

L’objet PlatformInitRuntimeDone possède les attributs suivants :

Voici un exemple de Event de type 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 } ] } }

Rapport Platform.init

Un platform.initReport événement contient un rapport global de la phase d'initialisation de la fonction d'événement. Un objet Event platform.initReport a la forme suivante :

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

L’objet PlatformInitReport possède les attributs suivants :

Voici un exemple de Event de type 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 événement indique que la phase d'invocation de la fonction d'événement a commencé. Un objet Event platform.start a la forme suivante :

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

L’objet PlatformStart possède les attributs suivants :

  • requestId – String

  • version? – String

  • tracing? – TraceContext

Voici un exemple de Event de type 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 événement indique que la phase d'invocation de la fonction d'événement est terminée. Un objet Event platform.runtimeDone a la forme suivante :

Instances gérées par Lambda

L'platform.runtimeDoneévénement n'est pas pris en charge pour les instances gérées Lambda. Les extensions exécutées sur les instances gérées ne reçoivent pas cet événement car les extensions ne peuvent pas s'abonner à l'INVOKEévénement sur les instances gérées. En raison du modèle d'exécution simultanée dans lequel plusieurs invocations peuvent être traitées simultanément, les extensions ne peuvent pas effectuer de traitement post-appel pour des invocations individuelles comme elles le font traditionnellement sur les fonctions Lambda (par défaut).

Pour les instances gérées, les responseLatency intervalles responseDuration et qui y sont normalement inclus platform.runtimeDone sont plutôt disponibles lors de l'platform.reportévénement. Consultez platform.rapport pour plus de détails.

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

L’objet PlatformRuntimeDone possède les attributs suivants :

Voici un exemple de Event de type 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.rapport

Un platform.report événement contient un rapport global de la phase d'appel de la fonction d'événement. Un objet Event platform.report a la forme suivante :

Instances gérées par Lambda

L'platform.reportévénement pour les instances gérées Lambda a des métriques et des durées différentes par rapport aux fonctions Lambda (par défaut). Pour les instances gérées :

  • Portée : contient responseLatency et responseDuration au lieu de. extensionOverhead L'extensionOverheadintervalle n'est pas disponible car les extensions ne peuvent pas s'abonner à l'INVOKEévénement sur les instances gérées en raison du modèle d'exécution simultanée.

  • Métriques : inclut uniquementdurationMs. Les mesures suivantes ne sont pas incluses : billedDurationMsinitDurationMs,maxMemoryUsedMB, etmemorySizeMB. Ces métriques par appel ne sont pas applicables dans l'environnement d'exécution simultanée. Pour les mesures d'utilisation des ressources, utilisez Surveillance des instances gérées Lambda Lambda Insights.

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

L’objet PlatformReport possède les attributs suivants :

Voici un exemple de Event de type 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", } }

Platform.restoRestart

Un platform.restoreStart événement indique qu'un événement de restauration de l'environnement Event Function a commencé. Dans un événement de restauration d’environnement, Lambda crée l’environnement à partir d’un instantané mis en cache plutôt que de l’initialiser à partir de zéro. Pour plus d’informations, consultez SnapStart. Un objet Event platform.restoreStart a la forme suivante :

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

L’objet PlatformRestoreStart possède les attributs suivants :

  • functionName – String

  • functionVersion – String

  • instanceId? – String

  • un exemple MaxMemory ? — String

  • runtimeVersion? – String

  • durée d'exécution VersionArn ? — String

Voici un exemple de Event de type 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 } }

platform.restore RuntimeDone

Un platform.restoreRuntimeDone événement indique qu'un événement de restauration de l'environnement Event Function est terminé. Dans un événement de restauration d’environnement, Lambda crée l’environnement à partir d’un instantané mis en cache plutôt que de l’initialiser à partir de zéro. Pour plus d’informations, consultez SnapStart. Un objet Event platform.restoreRuntimeDone a la forme suivante :

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

L’objet PlatformRestoreRuntimeDone possède les attributs suivants :

  • errorType? – String

  • spans? – Liste d’objets Span

  • status – Objet Statut

Voici un exemple de Event de type 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 événement contient un rapport global d'un événement de restauration d'une fonction événementielle. Un objet Event platform.restoreReport a la forme suivante :

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

L’objet PlatformRestoreReport possède les attributs suivants :

Voici un exemple de Event de type 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 } ] } }

plate-forme.extension

Un événement extension contient des journaux provenant du code d’extension. Un objet Event extension a la forme suivante :

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

L’objet PlatformExtension possède les attributs suivants :

  • events – Liste de String

  • nom – String

  • state – String

Voici un exemple de Event de type platform.extension :

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

Plateforme.Abonnement à la télémétrie

Un événement platform.telemetrySubscription contient des informations sur un abonnement d’extension. Un objet Event platform.telemetrySubscription a la forme suivante :

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

L’objet PlatformTelemetrySubscription possède les attributs suivants :

  • nom – String

  • state – String

  • types – Liste de String

Voici un exemple de Event de type platform.telemetrySubscription :

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

Plate-forme. LogsDropped

Un événement platform.logsDropped contient des informations sur les événements abandonnés. Lambda émet l'platform.logsDroppedévénement lorsqu'une fonction d'événement produit des logs à un débit trop élevé pour que Lambda puisse les traiter. Lorsque Lambda ne parvient pas à envoyer des journaux vers CloudWatch ou vers l'extension abonnée à l'API de télémétrie au rythme où la fonction d'événement les produit, il supprime les journaux pour empêcher l'exécution de la fonction d'événement de ralentir. Un objet Event platform.logsDropped a la forme suivante :

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

L’objet PlatformLogsDropped possède les attributs suivants :

  • droppedBytes – Integer

  • droppedRecords – Integer

  • reason – String

Voici un exemple de Event de type 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" } }

fonction

Un function événement contient des journaux issus du code de la fonction d'événement. Un objet Event function a la forme suivante :

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

Le format du record champ varie selon que les journaux de votre fonction d'événement sont formatés en texte brut ou au format JSON. Pour en savoir plus sur les options de configuration du format de journal, voir Configuration des formats de journal JSON et en texte brut

Voici un exemple Event de type function où le format du journal est en texte brut :

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

Voici un exemple Event de type function où le journal est au format 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!" } }
Note

Si la version du schéma que vous utilisez est plus ancienne que la 2022-12-13 version, elle "record" est toujours affichée sous forme de chaîne, même lorsque le format de journalisation de votre fonction d'événement est configuré au format JSON. Pour les instances gérées Lambda, vous devez utiliser la version du schéma. 2025-01-29

Extension

Un événement extension contient des journaux provenant du code d’extension. Un objet Event extension a la forme suivante :

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

Le format du record champ varie selon que les journaux de votre fonction d'événement sont formatés en texte brut ou au format JSON. Pour en savoir plus sur les options de configuration du format de journal, voir Configuration des formats de journal JSON et en texte brut

Voici un exemple Event de type extension où le format du journal est en texte brut :

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

Voici un exemple Event de type extension où le journal est au format 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!" } }
Note

Si la version du schéma que vous utilisez est plus ancienne que la 2022-12-13 version, elle "record" est toujours affichée sous forme de chaîne, même lorsque le format de journalisation de votre fonction d'événement est configuré au format JSON. Pour les instances gérées Lambda, vous devez utiliser la version du schéma. 2025-01-29

Types d’objets partagés

Cette section détaille les types d’objets partagés que l’API de télémétrie Lambda prend en charge.

InitPhase

Une enum de chaînes de caractères qui décrit la phase où l’étape d’initialisation se produit. Dans la plupart des cas, Lambda exécute le code d'initialisation de la fonction d'événement pendant la phase. init Toutefois, dans certains cas d'erreur, Lambda peut réexécuter le code d'initialisation de la fonction d'événement au cours de la phase. invoke (Cela s’appelle une init supprimée.)

  • Type – String

  • Valeurs valides : init|invoke|snap-start

InitReportMetrics

Un objet qui contient des métriques sur une phase d’initialisation.

  • Type – Object

Un objet InitReportMetrics a la forme suivante :

InitReportMetrics: Object - durationMs: Double

Voici un exemple d’objet InitReportMetrics :

{ "durationMs": 247.88 }

InitType

Une enum de chaînes de caractères qui décrit comment Lambda a initialisé l’environnement.

  • Type – String

  • Valeurs valides – on-demand|provisioned-concurrency

ReportMetrics

Un objet qui contient des métriques sur une phase terminée.

  • Type – Object

Un objet ReportMetrics a la forme suivante :

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

Voici un exemple d’objet ReportMetrics :

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

RestoreReportMetrics

Un objet qui contient des métriques sur une phase de restauration terminée.

  • Type – Object

Un objet RestoreReportMetrics a la forme suivante :

RestoreReportMetrics: Object - durationMs: Double

Voici un exemple d’objet RestoreReportMetrics :

{ "durationMs": 15.19 }

RuntimeDoneMetrics

Un objet qui contient des métriques sur une phase d’invocation.

  • Type – Object

Un objet RuntimeDoneMetrics a la forme suivante :

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

Voici un exemple d'objet RuntimeDoneMetrics :

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

Span

Un objet qui contient des détails sur un span. Un span représente une unité de travail ou une opération dans une trace. Pour plus d'informations sur les spans, consultez Span sur la page de l'API de suivi du site Web de OpenTelemetry Docs.

Lambda prend en charge les span suivants pour l’événement platform.RuntimeDone :

  • Le responseLatency span décrit le temps qu'il a fallu à votre fonction d'événement Lambda pour commencer à envoyer la réponse.

  • Le responseDuration span décrit le temps qu'il a fallu à votre fonction d'événement Lambda pour terminer l'envoi de la réponse complète.

  • Le runtimeOverhead span décrit le temps qu'il a fallu au moteur d'exécution Lambda pour signaler qu'il était prêt à traiter le prochain appel de la fonction d'événement. C'est le temps qu'il a fallu au moteur d'exécution pour appeler l'API d'invocation suivante afin d'obtenir le prochain événement après avoir renvoyé votre réponse Event Function.

Voici un exemple d’objet span responseLatency :

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

Statut

Un objet qui décrit le statut d’une phase d’initialisation ou d’invocation. Si le statut est failure ou error, l’objet Status contient également un champ errorType décrivant l’erreur.

  • Type – Object

  • Valeurs de status valides : success|failure|error|timeout

TraceContext

Un objet qui décrit les propriétés d’une trace.

  • Type – Object

Un objet TraceContext a la forme suivante :

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

Voici un exemple d’objet TraceContext :

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

TracingType

Un enum de chaînes de caractères qui décrit le type de trace dans un objet TraceContext.

  • Type – String

  • Valeurs valides – X-Amzn-Trace-Id