CreateEventSourceMapping - AWS Lambda

CreateEventSourceMapping

Crea un mapeo entre una fuente de eventos y una función de AWS Lambda. Lambda lee los elementos del origen de eventos e invoca la función.

Para obtener más información acerca de cómo configurar diferentes fuentes de eventos, consulte los temas siguientes.

Las siguientes opciones de gestión de errores solo están disponibles para las fuentes de flujo (DynamoDB y Kinesis):

  • BisectBatchOnFunctionError: si la función devuelve un error, divida el lote en dos y vuelva a intentarlo.

  • DestinationConfig: envíe los registros descartados a una cola de Amazon SQS o a un tema de Amazon SNS.

  • MaximumRecordAgeInSeconds: descarte los registros anteriores a la edad especificada. El valor predeterminado es infinito (-1). Cuando se establecen en infinito (-1), se vuelven a intentar los registros que han producido error hasta que caduque el registro

  • MaximumRetryAttempts: descarte los registros después del número especificado de reintentos. El valor predeterminado es infinito (-1). Cuando se establecen en infinito (-1), se vuelven a intentar los registros que han producido error hasta que caduque el registro.

  • ParallelizationFactor: procese varios lotes de cada partición de manera simultánea.

Para obtener información acerca de los parámetros de configuración que se aplican a cada fuente de eventos, consulte los temas siguientes.

Sintaxis de la solicitud

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

Parámetros de solicitud del URI

La solicitud no utiliza ningún parámetro de URI.

Cuerpo de la solicitud

La solicitud acepta los siguientes datos en formato JSON.

AmazonManagedKafkaEventSourceConfig

Ajustes de configuración específicos para orígenes de eventos de Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Tipo: objeto AmazonManagedKafkaEventSourceConfig

Obligatorio: no

BatchSize

El número máximo de registros en cada lote que Lambda extrae del flujo o la cola y envía a su función. Lambda pasa todos los registros del lote a la función en una sola llamada hasta el límite de carga para la invocación síncrona (6 MB).

  • Amazon Kinesis: valor predeterminado 100. Máx. 10 000.

  • Amazon DynamoDB Streams: valor predeterminado 100. Máx. 10 000.

  • Amazon Simple Queue Service: valor predeterminado 10. Para colas estándar, el máximo es 10 000. Para colas FIFO, el máximo es 10.

  • Amazon Managed Streaming para Apache Kafka: valor predeterminado 100. Máx. 10 000.

  • Apache Kafka autoadministrado: valor predeterminado 100. Máx. 10 000.

  • Amazon MQ (ActiveMQ y RabbitMQ): valor predeterminado 100. Máx. 10 000.

  • DocumentDB: valor predeterminado 100. Máx. 10 000.

Tipo: entero

Rango válido: valor mínimo de 1. Valor máximo de 10000.

Obligatorio: no

BisectBatchOnFunctionError

(Solo Kinesis y DynamoDB Streams) Si la función devuelve un error, divida el lote en dos y vuelva a intentarlo.

Tipo: Booleano

Obligatorio: no

DestinationConfig

(Solo para Kinesis, DynamoDB Streams, Amazon MSK y Kafka autoadministrado) Un objeto de configuración que especifica el destino de un evento después de que Lambda lo procese.

Tipo: objeto DestinationConfig

Obligatorio: no

DocumentDBEventSourceConfig

Ajustes de configuración específicos para un origen de eventos de DocumentDB.

Tipo: objeto DocumentDBEventSourceConfig

Obligatorio: no

Enabled

Cuando es “true”, el mapeo de origen de eventos está activo. Cuando es “false”, Lambda pone en pausa el sondeo y la invocación.

Valor predeterminado: True

Tipo: Booleano

Obligatorio: no

EventSourceArn

El nombre de recurso de Amazon (ARN) del origen de evento.

  • Amazon Kinesis: el ARN del flujo de datos o un consumidor de flujos.

  • Amazon DynamoDB Streams: el ARN del flujo.

  • Amazon Simple Queue Service: el ARN de la cola.

  • Amazon Managed Streaming para Apache Kafka: el ARN del clúster o el ARN de la conexión de VPC (para la asignación de orígenes de eventos entre cuentas).

  • Amazon MQ: el ARN del agente.

  • Amazon DocumentDB: el ARN del flujo de cambios de DocumentDB.

Tipo: String

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

Obligatorio: no

FilterCriteria

Un objeto que define los criterios de filtro que determinan si Lambda debe procesar un evento o no. Para obtener más información, consulte Filtrado de eventos de Lambda.

Tipo: objeto FilterCriteria

Obligatorio: no

FunctionName

El nombre de la función de Lambda.

Formatos de nombre
  • Nombre de la función: MyFunction.

  • ARN de la función: arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

  • ARN de la versión o el alias: arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

  • ARN parcial: 123456789012:function:MyFunction.

La limitación de longitud se aplica únicamente al ARN completo. Si solo especifica el nombre de la función, el límite son 64 caracteres de longitud.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 140 caracteres.

Patrón: (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-_]+))?

Obligatorio: sí

FunctionResponseTypes

(Kinesis, DynamoDB Streams, and Amazon SQS) Una lista de enumeraciones de tipo de respuesta actuales aplicadas a la asignación de orígenes de eventos.

Tipo: matriz de cadenas

Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 1 elemento.

Valores válidos: ReportBatchItemFailures

Obligatorio: no

MaximumBatchingWindowInSeconds

La cantidad de tiempo máxima, en segundos, que Lambda emplea a fin de recopilar registros antes de invocar la función. Puede configurar MaximumBatchingWindowInSeconds como cualquier valor entre 0 segundos y 300 segundos, en incrementos de segundos.

En el caso de los flujos y los orígenes de eventos de Amazon SQS, el periodo de procesamiento por lotes predeterminado es de 0 segundos. En el caso de los orígenes de eventos de Amazon MSK, Apache Kafka autoadministrado, Amazon MQ y DocumentDB, el periodo de procesamiento por lotes predeterminado es de 500 ms. Tenga en cuenta que como solo puede cambiar MaximumBatchingWindowInSeconds en incrementos de segundos, no puede volver al periodo de procesamiento por lotes predeterminado de 500 ms después de haberlo cambiado. Para restaurar el plazo de procesamiento por lotes predeterminado, debe crear una nueva asignación de origen de eventos.

Configuración relacionada: en el caso de los flujos y los orígenes de eventos de Amazon SQS, cuando establece BatchSize en un valor superior a 10, debe establecer MaximumBatchingWindowInSeconds en al menos 1.

Tipo: entero

Rango válido: valor mínimo de 0. Valor máximo de 300.

Obligatorio: no

MaximumRecordAgeInSeconds

(Solo Kinesis y DynamoDB Streams) Descarte registros anteriores a la edad especificada. El valor predeterminado es infinito (-1).

Tipo: entero

Rango válido: valor mínimo de -1. Valor máximo de 604800.

Obligatorio: no

MaximumRetryAttempts

(Solo Kinesis y DynamoDB Streams) Descarte registros después del número de reintentos especificado. El valor predeterminado es infinito (-1). Cuando se establecen en infinito (-1), se vuelven a intentar los registros que han producido error hasta que caduque el registro.

Tipo: entero

Rango válido: valor mínimo de -1. Valor máximo de 10000.

Obligatorio: no

ParallelizationFactor

(Solo Kinesis y DynamoDB Streams) El número de lotes de cada partición que se procesarán en simultáneo.

Tipo: entero

Rango válido: valor mínimo de 1. Valor máximo de 10.

Obligatorio: no

Queues

(MQ) Nombre de la cola de destino del agente de Amazon MQ que se va a consumir.

Tipo: matriz de cadenas

Miembros de la matriz: número fijo de 1 elemento.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1000 caracteres.

Patrón: [\s\S]*

Obligatorio: no

ScalingConfig

(Solo Amazon SQS) La configuración de escalado de orígenes de eventos. Para obtener más información, consulte Configuración de la simultaneidad máxima para los orígenes de eventos de Amazon SQS.

Tipo: objeto ScalingConfig

Obligatorio: no

SelfManagedEventSource

El clúster de Apache Kafka autoadministrado del que se recibirán registros.

Tipo: objeto SelfManagedEventSource

Obligatorio: no

SelfManagedKafkaEventSourceConfig

Ajustes de configuración específicos para un origen de eventos de Apache Kafka autoadministrados.

Tipo: objeto SelfManagedKafkaEventSourceConfig

Obligatorio: no

SourceAccessConfigurations

Se requiere una matriz del protocolo de autenticación o los componentes de VPC para proteger la fuente de eventos.

Tipo: Matriz de objetos SourceAccessConfiguration

Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 22 elementos.

Obligatorio: no

StartingPosition

La posición en el flujo donde comienza la lectura. Obligatorio para los orígenes de eventos de Amazon Kinesis y Amazon DynamoDB Stream. AT_TIMESTAMP solo es compatible con flujos de Amazon Kinesis, Amazon DocumentDB, Amazon MSK y Apache Kafka autoadministrado.

Tipo: cadena

Valores válidos: TRIM_HORIZON | LATEST | AT_TIMESTAMP

Obligatorio: no

StartingPositionTimestamp

Con StartingPosition, configure en AT_TIMESTAMP el tiempo a partir del cual comenzar la lectura, en segundos de tiempo Unix. StartingPositionTimestamp no puede ser futura.

Tipo: marca temporal

Obligatorio: no

Topics

El nombre del tema de Kafka.

Tipo: matriz de cadenas

Miembros de la matriz: número fijo de 1 elemento.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 249 caracteres.

Patrón: ^[^.]([a-zA-Z0-9\-_.]+)

Obligatorio: no

TumblingWindowInSeconds

(Solo Kinesis y DynamoDB Streams) La duración en segundos de una ventana de procesamiento para orígenes de eventos de DynamoDB y Kinesis Streams. Un valor de 0 segundos indica que no hay ventanas caídas.

Tipo: entero

Rango válido: valor mínimo de 0. Valor máximo de 900.

Obligatorio: no

Sintaxis de la respuesta

HTTP/1.1 202 Content-type: application/json { "AmazonManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "DocumentDBEventSourceConfig": { "CollectionName": "string", "DatabaseName": "string", "FullDocument": "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" ], "ScalingConfig": { "MaximumConcurrency": number }, "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SelfManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "State": "string", "StateTransitionReason": "string", "Topics": [ "string" ], "TumblingWindowInSeconds": number, "UUID": "string" }

Elementos de respuesta

Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 202.

El servicio devuelve los datos siguientes en formato JSON.

AmazonManagedKafkaEventSourceConfig

Ajustes de configuración específicos para orígenes de eventos de Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Tipo: objeto AmazonManagedKafkaEventSourceConfig

BatchSize

El número máximo de registros en cada lote que Lambda extrae del flujo o la cola y envía a su función. Lambda pasa todos los registros del lote a la función en una sola llamada hasta el límite de carga para la invocación síncrona (6 MB).

Valor predeterminado: varía según el servicio. Para Amazon SQS, el valor predeterminado es 10. Para todos los demás servicios, el valor predeterminado es 100.

Configuración relacionada: cuando configura BatchSize en un valor superior a 10, debe establecer MaximumBatchingWindowInSeconds en al menos 1.

Tipo: entero

Rango válido: valor mínimo de 1. Valor máximo de 10000.

BisectBatchOnFunctionError

(Solo Kinesis y DynamoDB Streams) Si la función devuelve un error, divida el lote en dos y vuelva a intentarlo. El valor predeterminado es false.

Tipo: Booleano

DestinationConfig

(Solo para Kinesis, DynamoDB Streams, Amazon MSK y fuentes de eventos autogestionadas de Apache Kafka únicamente) Un objeto de configuración que especifica el destino de un evento después de que Lambda lo procese.

Tipo: objeto DestinationConfig

DocumentDBEventSourceConfig

Ajustes de configuración específicos para un origen de eventos de DocumentDB.

Tipo: objeto DocumentDBEventSourceConfig

EventSourceArn

El nombre de recurso de Amazon (ARN) del origen de evento.

Tipo: String

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

FilterCriteria

Un objeto que define los criterios de filtro que determinan si Lambda debe procesar un evento o no. Para obtener más información, consulte Filtrado de eventos de Lambda.

Tipo: objeto FilterCriteria

FunctionArn

El ARN de la función de Lambda.

Tipo: String

Patrón: 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

(Kinesis, DynamoDB Streams, and Amazon SQS) Una lista de enumeraciones de tipo de respuesta actuales aplicadas a la asignación de orígenes de eventos.

Tipo: matriz de cadenas

Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 1 elemento.

Valores válidos: ReportBatchItemFailures

LastModified

La fecha en la que se actualizó por última vez el mapeo de fuente del evento o en que su estado cambió, en segundos de tiempo Unix.

Tipo: marca temporal

LastProcessingResult

El resultado de la última invocación de Lambda de su función.

Tipo: cadena

MaximumBatchingWindowInSeconds

La cantidad de tiempo máxima, en segundos, que Lambda emplea a fin de recopilar registros antes de invocar la función. Puede configurar MaximumBatchingWindowInSeconds como cualquier valor entre 0 segundos y 300 segundos, en incrementos de segundos.

En el caso de los flujos y los orígenes de eventos de Amazon SQS, el periodo de procesamiento por lotes predeterminado es de 0 segundos. En el caso de los orígenes de eventos de Amazon MSK, Apache Kafka autoadministrado, Amazon MQ y DocumentDB, el periodo de procesamiento por lotes predeterminado es de 500 ms. Tenga en cuenta que como solo puede cambiar MaximumBatchingWindowInSeconds en incrementos de segundos, no puede volver al periodo de procesamiento por lotes predeterminado de 500 ms después de haberlo cambiado. Para restaurar el plazo de procesamiento por lotes predeterminado, debe crear una nueva asignación de origen de eventos.

Configuración relacionada: en el caso de los flujos y los orígenes de eventos de Amazon SQS, cuando establece BatchSize en un valor superior a 10, debe establecer MaximumBatchingWindowInSeconds en al menos 1.

Tipo: entero

Rango válido: valor mínimo de 0. Valor máximo de 300.

MaximumRecordAgeInSeconds

(Solo Kinesis y DynamoDB Streams) Descarte registros anteriores a la edad especificada. El valor predeterminado es -1, que establece la edad máxima en infinita. Cuando el valor se establece en infinito, Lambda nunca descarta los registros antiguos.

nota

El valor mínimo válido para la antigüedad máxima del registro es de 60 segundos. Si bien los valores inferiores a 60 y superiores a -1 se encuentran dentro del rango absoluto del parámetro, no están permitidos

Tipo: entero

Rango válido: valor mínimo de -1. Valor máximo de 604 800.

MaximumRetryAttempts

(Solo Kinesis y DynamoDB Streams) Descarte registros después del número de reintentos especificado. El valor predeterminado es -1, que establece el número máximo de reintentos en infinito. Cuando MaximumRetryAttempts es infinito, Lambda reintenta los registros fallidos hasta que el registro caduque en la fuente de eventos.

Tipo: entero

Rango válido: valor mínimo de -1. Valor máximo de 10000.

ParallelizationFactor

(Solo Kinesis y DynamoDB Streams) El número de lotes de cada partición que se procesarán en forma simultánea. El valor predeterminado es 1.

Tipo: entero

Rango válido: valor mínimo de 1. Valor máximo de 10.

Queues

(Amazon MQ) El nombre de la cola de destino del agente de Amazon MQ que se va a consumir.

Tipo: matriz de cadenas

Miembros de la matriz: número fijo de 1 elemento.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1000 caracteres.

Patrón: [\s\S]*

ScalingConfig

(Solo Amazon SQS) La configuración de escalado de orígenes de eventos. Para obtener más información, consulte Configuración de la simultaneidad máxima para los orígenes de eventos de Amazon SQS.

Tipo: objeto ScalingConfig

SelfManagedEventSource

El clúster de Apache Kafka autoadministrado para la fuente de eventos.

Tipo: objeto SelfManagedEventSource

SelfManagedKafkaEventSourceConfig

Ajustes de configuración específicos para un origen de eventos de Apache Kafka autoadministrados.

Tipo: objeto SelfManagedKafkaEventSourceConfig

SourceAccessConfigurations

Una matriz del protocolo de autenticación, los componentes de VPC o el host virtual para proteger y definir su fuente de eventos.

Tipo: Matriz de objetos SourceAccessConfiguration

Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 22 elementos.

StartingPosition

La posición en el flujo donde comienza la lectura. Obligatorio para los orígenes de eventos de Amazon Kinesis y Amazon DynamoDB Stream. AT_TIMESTAMP solo es compatible con flujos de Amazon Kinesis, Amazon DocumentDB, Amazon MSK y Apache Kafka autoadministrado.

Tipo: cadena

Valores válidos: TRIM_HORIZON | LATEST | AT_TIMESTAMP

StartingPositionTimestamp

Con StartingPosition, configure en AT_TIMESTAMP el tiempo a partir del cual comenzar la lectura, en segundos de tiempo Unix. StartingPositionTimestamp no puede ser futura.

Tipo: marca temporal

State

El estado del mapeo de fuente de eventos. Puede ser uno de los siguientes: Creating, Enabling, Enabled, Disabling, Disabled, Updating, o Deleting.

Tipo: cadena

StateTransitionReason

Indica si un usuario o Lambda realizaron el último cambio en el mapeo de fuente de eventos.

Tipo: cadena

Topics

El nombre del tema de Kafka.

Tipo: matriz de cadenas

Miembros de la matriz: número fijo de 1 elemento.

Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 249 caracteres.

Patrón: ^[^.]([a-zA-Z0-9\-_.]+)

TumblingWindowInSeconds

(Solo Kinesis y DynamoDB Streams) La duración en segundos de una ventana de procesamiento para orígenes de eventos de DynamoDB y Kinesis Streams. Un valor de 0 segundos indica que no hay ventanas caídas.

Tipo: entero

Rango válido: valor mínimo de 0. Valor máximo de 900.

UUID

El identificador del mapeo de fuente de eventos.

Tipo: cadena

Errores

Para obtener información acerca de los errores comunes a todas las acciones, consulte Errores comunes.

InvalidParameterValueException

Uno de los parámetros de la solicitud no es válido.

Código de estado HTTP: 400

ResourceConflictException

El recurso ya existe o hay otra operación en marcha.

Código de estado HTTP: 409

ResourceNotFoundException

El recurso especificado en la solicitud no existe.

Código de estado HTTP: 404

ServiceException

El servicio AWS Lambda detectó un error interno.

Código de estado HTTP: 500

TooManyRequestsException

Se ha superado el límite de rendimiento de la solicitud. Para obtener más información, consulte Cuotas de Lambda.

Código de estado HTTP: 429

Véase también

Para obtener más información sobre el uso de esta API en un SDK de AWS de un lenguaje específico, consulte: