Référence du schéma Event 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 Event 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 2022-12-13, 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.

Types de messages de l’API de télémétrie
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.initRuntimeDone

Événement de plateforme

platform.initReport

Un rapport d’initialisation de la fonction.

Schéma platform.initReport

É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.report

É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.restoreRuntimeDone

É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 platform.telemetrySubscription

Événement de plateforme

platform.logsDropped

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

Schéma platform.logsDropped

Journaux de fonctions

function

Une ligne de journal du code de la fonction.

Schéma function

Journaux d’extension

extension

Une ligne de journal du code de l’extension.

Schéma extension

Types d’objets Event 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 événement platform.initStart indique que la phase d’initialisation de la fonction 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 :

  • functionNameString

  • functionVersionString

  • InitializationType – Objet InitType

  • instanceId?String

  • instanceMaxMemory?Integer

  • phase – Objet InitPhase

  • runtimeVersion?String

  • runtimeVersionArn?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.initRuntimeDone

Un événement platform.initRuntimeDone indique que la phase d’initialisation de la fonction 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 } ] } }

platform.initReport

Un événement platform.initReport contient un rapport global de la phase d’initialisation de la fonction. 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 événement platform.start indique que la phase d’invocation de la fonction 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 :

  • requestIdString

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

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.report

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

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 événement platform.restoreStart indique qu’un événement de restauration d’environnement de fonction 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 Lambda 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 :

  • functionNameString

  • functionVersionString

  • instanceId?String

  • instanceMaxMemory?String

  • runtimeVersion?String

  • runtimeVersionArn?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.restoreRuntimeDone

Un événement platform.restoreRuntimeDone indique qu’un événement de restauration d’environnement de fonction s’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 Lambda 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 Status

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 événement platform.restoreReport contient un rapport global d’un événement de restauration de fonction. 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 } ] } }

platform.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

  • nomString

  • stateString

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

platform.telemetrySubscription

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 :

  • nomString

  • stateString

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

platform.logsDropped

Un événement platform.logsDropped contient des informations sur les événements abandonnés. Lambda émet un platform.logsDropped événement lorsqu'une fonction produit des logs à un taux 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 les produit, il supprime les journaux pour empêcher l'exécution de la fonction 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 :

  • droppedBytesInteger

  • droppedRecordsInteger

  • reasonString

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

function

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

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

Le format du champ record varie selon que les journaux de votre fonction sont formatés en texte brut ou au format JSON. Pour en savoir plus sur les options de configuration du format de journal, consultez 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 version 2022-12-13, "record" est toujours affiché sous forme de chaîne, même lorsque le format de journalisation de votre fonction est configuré au format JSON.

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 champ record varie selon que les journaux de votre fonction sont formatés en texte brut ou au format JSON. Pour en savoir plus sur les options de configuration du format de journal, consultez 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 version 2022-12-13, "record" est toujours affiché sous forme de chaîne, même lorsque le format de journalisation de votre fonction est configuré au format JSON.

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 pendant la phase init. Toutefois, dans certains cas d’erreur, Lambda peut réexécuter le code d’initialisation de la fonction pendant la phase invoke. (Cela s’appelle une init supprimée.)

  • TypeString

  • Valeurs valides : init|invoke|snap-start

InitReportMetrics

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

  • TypeObject

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.

  • TypeString

  • Valeurs valideson-demand|provisioned-concurrency

ReportMetrics

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

  • TypeObject

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.

  • TypeObject

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.

  • TypeObject

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 span responseLatency décrit le temps qu’il a fallu à votre fonction Lambda pour commencer à envoyer la réponse.

  • Le span responseDuration décrit le temps qu’il a fallu à votre fonction Lambda pour finir d’envoyer la réponse entière.

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

Voici un exemple d’objet span responseLatency :

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

Status

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.

  • TypeObject

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

TraceContext

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

  • TypeObject

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.

  • TypeString

  • Valeurs validesX-Amzn-Trace-Id