Procesamiento de registros de Amazon Kinesis Data Streams
Para procesar los registros de Amazon Kinesis Data Streams con Lambda, cree una asignación de orígenes de eventos de Lambda. Puede asignar una función de Lambda a un iterador estándar o a un consumidor de distribución ramificada mejorada. Para obtener más información, consulte Flujos de sondeo y procesamiento por lotes.
Crear la asignación de orígenes de eventos de Kinesis
Para invocar la función de Lambda con registros del flujo de datos, cree una asignación de orígenes de eventos. Puede crear varias asignaciones de orígenes de eventos para procesar los mismos datos con distintas funciones de Lambda o para procesar elementos de varios flujos de datos con una sola función. Al procesar elementos de múltiples flujos de datos, cada lote solo contendrá registros de una única partición o flujo.
Puede configurar las asignaciones de orígenes de eventos para procesar los registros de un flujo en una Cuenta de AWS diferente. Para obtener más información, consulte Creación de asignaciones de orígenes de eventos entre cuentas.
Antes de crear una asignación de orígenes de eventos, debe dar permiso a la función de Lambda para leer desde un flujo de datos de Kinesis. Lambda necesita los siguientes permisos para administrar los recursos relacionados con el flujo de datos de Kinesis:
La política administrada de AWS AWSLambdaKinesisExecutionRole incluye estos permisos. Agregue esta política administrada a la función, tal como se describe en el siguiente procedimiento.
nota
-
No necesita el permiso
kinesis:ListStreamspara crear y administrar las asignaciones de orígenes de eventos para Kinesis. Sin embargo, si crea una asignación de orígenes de eventos en la consola y no tiene este permiso, no podrá seleccionar una transmisión de Kinesis de la lista desplegable, y la consola mostrará un error. Para crear la asignación de orígenes de eventos, tendrá que introducir manualmente el Nombre de recurso de Amazon (ARN) de la transmisión. -
Lambda realiza llamadas a las API
kinesis:GetRecordsykinesis:GetShardIteratorcuando vuelve a intentar las invocaciones fallidas.
Una vez que haya configurado los permisos necesarios, cree la asignación de orígenes de eventos.
Posición inicial de flujos y sondeo
Tenga en cuenta que el sondeo de flujos durante la creación y las actualizaciones de la asignación de orígenes de eventos es, en última instancia, coherente.
-
Durante la creación de la asignación de orígenes de eventos, es posible que se demore varios minutos en iniciar el sondeo de los eventos del flujo.
-
Durante las actualizaciones de la asignación de orígenes de eventos, es posible que se demore varios minutos en detener y reiniciar el sondeo de los eventos del flujo.
Este comportamiento significa que, si especifica LATEST como posición inicial del flujo, la asignación de orígenes de eventos podría omitir eventos durante la creación o las actualizaciones. Para garantizar que no se pierda ningún evento, especifique la posición inicial del flujo como TRIM_HORIZON o AT_TIMESTAMP.
Creación de asignaciones de orígenes de eventos entre cuentas
Amazon Kinesis Data Streams admite políticas basadas en recursos. En consecuencia, puede procesar los datos ingeridos en un flujo en una Cuenta de AWS con una función de Lambda en otra cuenta.
Para crear una asignación de orígenes de eventos para la función de Lambda mediante un flujo de Kinesis en otra Cuenta de AWS, debe configurar el flujo mediante una política basada en recursos para conceder a la función de Lambda permiso para leer elementos. Para obtener información sobre cómo configurar la transmisión para permitir el acceso entre cuentas, consulte Acceso compartido con funciones de AWS Lambda entre cuentas en la Guía para desarrolladores de Amazon Kinesis Streams.
Una vez que haya configurado la transmisión con una política basada en recursos que otorgue a la función de Lambda los permisos necesarios, cree la asignación de orígenes de eventos mediante cualquiera de los métodos descritos en la sección anterior.
Si decide crear la asignación de orígenes de eventos mediante la consola Lambda, pegue el ARN de la transmisión directamente en el campo de entrada. Si quiere especificar un consumidor para la transmisión, al pegar el ARN del consumidor se rellena en forma automática el campo de transmisión.