CreateEventSourceMapping - AWS Lambda

CreateEventSourceMapping

Crée un mappage entre une source d’événement et une fonction AWS Lambda. Lambda lit les éléments à partir de la source d’événements et déclenche la fonction.

Pour en savoir plus sur la procédure à suivre pour configurer différentes sources d’événements, consultez les rubriques suivantes.

Les options de gestion des erreurs suivantes ne sont disponibles que pour les sources de flux (DynamoDB et Kinesis) :

  • BisectBatchOnFunctionError - Si la fonction renvoie une erreur, fractionner le lot en deux, puis réessayer.

  • DestinationConfig - Envoyer les enregistrements ignorés à une file d’attente Amazon SQS ou à une rubrique Amazon SNS.

  • MaximumRecordAgeInSeconds - Ignorer les enregistrements plus anciens que l’âge spécifié. La valeur par défaut est infinie (-1). Lorsque la valeur est infinie (-1), les enregistrements qui ont échoué sont réessayés jusqu’à ce que l’enregistrement expire.

  • MaximumRetryAttempts - Ignorer les enregistrements après le nombre spécifié de tentatives. La valeur par défaut est infinie (-1). Lorsque la valeur est infinie (-1), les enregistrements ayant échoué sont réessayés jusqu’à ce que l’enregistrement expire.

  • ParallelizationFactor - Traiter simultanément plusieurs lots de chaque partition.

Pour en savoir plus sur les paramètres de configuration qui s’appliquent à chaque source d’événements, consultez les rubriques suivantes.

Syntaxe de la demande

POST /2015-03-31/event-source-mappings/ HTTP/1.1 Content-type: application/json { "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "Enabled": boolean, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionName": "string", "FunctionResponseTypes": [ "string" ], "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "Queues": [ "string" ], "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "Topics": [ "string" ], "TumblingWindowInSeconds": number }

Paramètres de demande URI

La demande n’utilise pas de paramètres URI.

Corps de la demande

Cette demande accepte les données suivantes au format JSON.

BatchSize

Nombre maximal d’enregistrements dans chaque lot que Lambda extrait de votre flux ou file d’attente et envoie à votre fonction. Lambda transmet tous les enregistrements du lot à la fonction en un seul appel, dans la limite de charge utile pour un appel synchrone (6 Mo).

  • Amazon Kinesis - La valeur par défaut est 100. Valeur maximum, 10 000.

  • Amazon DynamoDB Streams - La valeur par défaut est 100. Valeur maximum, 1 000.

  • Amazon Simple Queue Service - La valeur par défaut est 100. Pour les files d’attente standard, le maximum est de 10 000. Pour les files d’attente FIFO, le maximum est de 10.

  • Amazon Managed Streaming for Apache Kafka - 100 par défaut. Valeur maximum, 10 000.

  • Auto-géré Apache Kafka - Par défaut 100. Valeur maximum, 10 000.

  • Amazon MQ (ActiveMQ et RabbitMQ) – Par défaut 100. Valeur maximum, 10 000.

Type : entier

Plage valide : Valeur minimum de 1. Valeur maximum de 10 000.

Obligatoire : non

BisectBatchOnFunctionError

(Flux uniquement) Si la fonction renvoie une erreur, partagez le lot en deux et recommencez.

Type : valeur booléenne

Obligatoire : non

DestinationConfig

(Flux uniquement) File d’attente Amazon SQS ou destination de rubrique Amazon SNS pour les enregistrements ignorés.

Type : objet DestinationConfig

Obligatoire : non

Enabled

Si la valeur est sur VRAI, le mappage de source d’événement est actif. Si la valeur est sur FAUX, Lambda interrompt l’interrogation et l’appel.

Valeur par défaut : VRAI

Type : booléen

Obligatoire : non

EventSourceArn

Amazon Resource Name (ARN) de la source d’événement.

  • Amazon Kinesis : ARN du flux de données ou d’un consommateur de flux.

  • Amazon DynamoDB Streams - ARN du flux.

  • Amazon Simple Queue Service : ARN de la file d’attente.

  • Amazon Managed Streaming for Apache Kafka - ARN du cluster.

Type : chaîne

Modèle : arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

Obligatoire : non

FilterCriteria

(Flux et Amazon SQS) Objet qui définit les critères de filtre qui déterminent si Lambda doit traiter un événement. Pour plus d’informations, consultez la section Filtrage des événements Lambda.

Type : objet FilterCriteria

Obligatoire : non

FunctionName

Nom de la fonction Lambda.

Formats de nom

  • Nom de fonction - MyFunction.

  • ARN de fonction - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

  • ARN de version ou d’alias - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

  • ARN partiel - 123456789012:function:MyFunction.

Contrainte de longueur qui s’applique uniquement à l’ARN complet. Si vous spécifiez uniquement le nom de la fonction, ce dernier est limité à 64 caractères.

Type : chaîne

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 140.

Modèle : (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

Obligatoire : oui

FunctionResponseTypes

(Flux et Amazon SQS) Liste des énumérations de type de réponse en cours appliquées au mappage de la source d’événement.

Type : tableau de chaînes

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 1 élément.

Valeurs valides : ReportBatchItemFailures

Obligatoire : non

MaximumBatchingWindowInSeconds

(Flux et files d’attente standard Amazon SQS) Intervalle de temps maximum (en secondes) que Lambda passe à collecter des enregistrements avant d’appeler la fonction.

Par défaut : 0

Paramètre associé : lorsque vous définissez BatchSize sur une valeur supérieure à 10, vous devez définir MaximumBatchingWindowInSeconds sur une valeur égale ou supérieure à 1.

Type : entier

Plage valide : Valeur minimum de 0. Valeur maximum de 300.

Obligatoire : non

MaximumRecordAgeInSeconds

(Flux uniquement) Ignorer les enregistrements plus anciens que l’âge spécifié. La valeur par défaut est infinie (-1).

Type : entier

Plage valide : Valeur minimum de -1. Valeur maximum de 604 800.

Obligatoire : non

MaximumRetryAttempts

(Flux uniquement) Ignore les enregistrements après le nombre de tentatives spécifié. La valeur par défaut est infinie (-1). Lorsque la valeur est infinie (-1), les enregistrements ayant échoué sont réessayés jusqu’à ce que l’enregistrement expire.

Type : entier

Plage valide : Valeur minimum de -1. Valeur maximum de 10 000.

Obligatoire : non

ParallelizationFactor

(Flux uniquement) Nombre de lots à traiter simultanément à partir de chaque partition.

Type : entier

Plage valide : Valeur minimum de 1. Valeur maximum de 10.

Obligatoire : non

Queues

(MQ) Nom de la file d’attente de destination du broker Amazon MQ à consommer.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1 000.

Modèle : [\s\S]*

Obligatoire : non

SelfManagedEventSource

Cluster Apache Kafka auto-géré pour envoyer des enregistrements.

Type : objet SelfManagedEventSource

Obligatoire : non

SourceAccessConfigurations

Tableau des protocoles d’authentification ou des composants VPC requis pour sécuriser votre source d’événement.

Type : tableau d’objets SourceAccessConfiguration

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 22 éléments.

Obligatoire : non

StartingPosition

Position de début de la lecture dans le flux. Obligatoire pour les sources de flux Amazon Kinesis, Amazon DynamoDB et Amazon MSK. AT_TIMESTAMP est uniquement pris en charge pour les flux Amazon Kinesis.

Type : chaîne

Valeurs valides : TRIM_HORIZON | LATEST | AT_TIMESTAMP

Obligatoire : non

StartingPositionTimestamp

Avec StartingPosition défini sur AT_TIMESTAMP, heure à partir de laquelle doit commencer la lecture, en secondes au format horaire Unix.

Type : horodatage

Obligatoire : non

Topics

Nom de la rubrique Kafka.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 249.

Modèle : ^[^.]([a-zA-Z0-9\-_.]+)

Obligatoire : non

TumblingWindowInSeconds

(Flux uniquement) Durée en secondes d’une fenêtre de traitement. La plage est comprise entre 1 et 900 secondes.

Type : entier

Plage valide : Valeur minimum de 0. Valeur maximum de 900.

Obligatoire : non

Syntaxe de la réponse

HTTP/1.1 202 Content-type: application/json { "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionArn": "string", "FunctionResponseTypes": [ "string" ], "LastModified": number, "LastProcessingResult": "string", "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "Queues": [ "string" ], "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "State": "string", "StateTransitionReason": "string", "Topics": [ "string" ], "TumblingWindowInSeconds": number, "UUID": "string" }

Eléments de réponse

Si l’action aboutit, le service renvoie une réponse HTTP 202.

Les données suivantes sont renvoyées au format JSON par le service.

BatchSize

Nombre maximal d’enregistrements dans chaque lot que Lambda extrait de votre flux ou file d’attente et envoie à votre fonction. Lambda transmet tous les enregistrements du lot à la fonction en un seul appel, dans la limite de charge utile pour un appel synchrone (6 Mo).

Valeur par défaut : varie selon le service. Pour Amazon SQS, la valeur par défaut est 10. Pour tous les autres services, la valeur par défaut est 100.

Paramètre associé : lorsque vous définissez BatchSize sur une valeur supérieure à 10, vous devez définir MaximumBatchingWindowInSeconds sur une valeur égale ou supérieure à 1.

Type : entier

Plage valide : Valeur minimum de 1. Valeur maximum de 10 000.

BisectBatchOnFunctionError

(Flux uniquement) Si la fonction renvoie une erreur, partagez le lot en deux et recommencez. La valeur par défaut est false.

Type : booléen

DestinationConfig

(Flux uniquement) File d’attente Amazon SQS ou destination de rubrique Amazon SNS pour les enregistrements ignorés.

Type : objet DestinationConfig

EventSourceArn

Amazon Resource Name (ARN) de la source d’événement.

Type : chaîne

Modèle : arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

FilterCriteria

(Flux et Amazon SQS) Objet qui définit les critères de filtre qui déterminent si Lambda doit traiter un événement. Pour plus d’informations, consultez la section Filtrage des événements Lambda.

Type : objet FilterCriteria

FunctionArn

ARN de la fonction Lambda.

Type : chaîne

Modèle : arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_]+(:(\$LATEST|[a-zA-Z0-9-_]+))?

FunctionResponseTypes

(Flux uniquement) Liste d’énumérations de type de réponse en cours appliquées au mappage de source d’événement.

Type : tableau de chaînes

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 1 élément.

Valeurs valides : ReportBatchItemFailures

LastModified

Date à laquelle le mappage de source d’événement a été mis à jour ou a changé d’état pour la dernière fois, exprimée en secondes au format horaire Unix.

Type : horodatage

LastProcessingResult

Résultat du dernier appel Lambda de votre fonction.

Type : chaîne

MaximumBatchingWindowInSeconds

(Flux et files d’attente standard Amazon SQS) Intervalle de temps maximum (en secondes) que Lambda passe à collecter des enregistrements avant d’appeler la fonction.

Par défaut : 0

Paramètre associé : lorsque vous définissez BatchSize sur une valeur supérieure à 10, vous devez définir MaximumBatchingWindowInSeconds sur une valeur égale ou supérieure à 1.

Type : entier

Plage valide : Valeur minimum de 0. Valeur maximum de 300.

MaximumRecordAgeInSeconds

(Flux uniquement) Ignorer les enregistrements plus anciens que l’âge spécifié. La valeur par défaut est -1, qui définit l’âge maximum sur infini. Lorsque la valeur est définie sur infini, Lambda ne supprime jamais les anciens enregistrements.

Type : entier

Plage valide : Valeur minimum de -1. Valeur maximum de 604 800.

MaximumRetryAttempts

(Flux uniquement) Ignore les enregistrements après le nombre de tentatives spécifié. La valeur par défaut est -1, qui définit le nombre maximum de nouvelles tentatives sur infini. Quand la valeur MaximumRetryAttempts est définie sur infini, Lambda réessaie les enregistrements ayant échoué jusqu’à ce que l’enregistrement expire dans la source d’événement.

Type : entier

Plage valide : Valeur minimum de -1. Valeur maximum de 10 000.

ParallelizationFactor

(Flux uniquement) Nombre de lots de chaque partition à traiter simultanément. La valeur par défaut est 1.

Type : entier

Plage valide : Valeur minimum de 1. Valeur maximum de 10.

Queues

(Amazon MQ) Nom de la file d’attente de destination de l’agent Amazon MQ à consommer.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 1 000.

Modèle : [\s\S]*

SelfManagedEventSource

Cluster Apache Kafka autogéré pour votre source d’événement.

Type : objet SelfManagedEventSource

SourceAccessConfigurations

Tableau du protocole d’authentification, composants VPC ou hôte virtuel pour sécuriser et définir votre source d’événement.

Type : tableau d’objets SourceAccessConfiguration

Membres du tableau : nombre minimum de 0 élément. Nombre maximum de 22 éléments.

StartingPosition

Position de début de la lecture dans le flux. Obligatoire pour les sources de flux Amazon Kinesis, Amazon DynamoDB et Amazon MSK. AT_TIMESTAMP est pris en charge uniquement pour les flux Amazon Kinesis.

Type : chaîne

Valeurs valides : TRIM_HORIZON | LATEST | AT_TIMESTAMP

StartingPositionTimestamp

Avec StartingPosition défini sur AT_TIMESTAMP, heure à partir de laquelle doit commencer la lecture, en secondes au format horaire Unix.

Type : horodatage

State

État du mappage de source d’événement. Peut être Creating, Enabling, Enabled, Disabling, Disabled, Updating ou Deleting.

Type : chaîne

StateTransitionReason

Indique si un utilisateur ou Lambda a apporté la dernière modification au mappage de source d’événement.

Type : chaîne

Topics

Nom de la rubrique Kafka.

Type : tableau de chaînes

Membres du tableau : nombre fixe de 1 élément.

Contraintes de longueur : Longueur minimum de 1. Longueur maximum de 249.

Modèle : ^[^.]([a-zA-Z0-9\-_.]+)

TumblingWindowInSeconds

(Flux uniquement) Durée en secondes d’une fenêtre de traitement. La plage est comprise entre 1 et 900 secondes.

Type : entier

Plage valide : Valeur minimum de 0. Valeur maximum de 900.

UUID

Identifiant du mappage de source d’événement.

Type : chaîne

Errors

InvalidParameterValueException

L’un des paramètres dans la demande n’est pas valide.

Code d’état HTTP : 400

ResourceConflictException

La ressource existe déjà ou une autre opération est en cours.

Code d’état HTTP : 409

ResourceNotFoundException

La ressource spécifiée dans la demande n’existe pas.

Code d’état HTTP : 404

ServiceException

Le service AWS Lambda a rencontré une erreur interne.

Code d’état HTTP : 500

TooManyRequestsException

La limite de débit de demande a été dépassée.

Code d’état HTTP : 429

Voir aussi

Pour plus d’informations sur l’utilisation de cette API dans l’un des kits SDK AWS spécifiques au langage, consultez les ressources suivantes :