Uso de Lambda con Amazon MSK - AWS Lambda

Uso de Lambda con Amazon MSK

Amazon Managed Streaming for Apache Kafka (Amazon MSK) es un servicio completamente administrado que le permite crear y ejecutar aplicaciones que utilizan Apache Kafka para procesar datos de transmisión. Amazon MSK proporciona las operaciones de plano de control, como las de creación, actualización y eliminación de clústeres. Es compatible con múltiples versiones de código abierto de Kafka.

Al crear un Amazon MSK clúster, recibirá la información de alojamiento y conexión necesaria del clúster. Esta información incluye el nombre de host del clúster de Kafka, el nombre del tema, el nombre de usuario y la contraseña SASL/SCRAM, y los pares de puerto host-puerto del servidor de arranque.

Para admitir el clúster de Kafka en Amazon MSK, es posible que necesite crear componentes de red Amazon Virtual Private Cloud (Amazon VPC). Para obtener más información, vea Utilizar Amazon MSK como origen de eventos para AWS Lambda en el blog de AWS computación.

Administrar el acceso y los permisos de un clúster Amazon MSK

Lambda sondea las particiones del tema de Apache Kafka en busca de nuevos registros e invoca la función Lambda de forma sincrónica. Para actualizar otros recursos de AWS que utiliza el clúster, la función Lambda, así como los usuarios y roles de AWS Identity and Access Management (IAM), deben tener permiso para realizar estas acciones.

En esta página se describe cómo conceder permisos a Lambda y a otros usuarios de su clúster Amazon MSK.

Permisos Lambda de función necesarios

Para leer registros de su clúster Amazon MSK en su nombre, las Lambda funciones rol de ejecución deben tener permiso. Puede agregar la directiva AWS administrada AWSLambdaMSKExecutionRole a su rol de ejecución o crear una directiva personalizada con permiso para realizar las siguientes acciones:

Agregar una directiva a su rol de ejecución

Siga estos pasos para agregar la directiva AWS administrada AWSLambdaMSKExecutionRole a su rol de ejecución mediante la consola IAM.

Para agregar una directiva AWS administrada

  1. Abra la página Directivas de la consola IAM.

  2. En el cuadro de búsqueda, escriba el nombre de la directiva (AWSLambdaMSKExecutionRole).

  3. Seleccione la directiva de la lista y, a continuación, elija Acciones de directiva, Adjuntar.

  4. Seleccione su rol de ejecución en la lista y, a continuación, elija Adjuntar directiva.

Conceder acceso a los usuarios con una directiva IAM

De forma predeterminada, los usuarios IAM y las funciones no tienen permiso para realizar operaciones de Amazon MSK API. Para conceder acceso a los usuarios de su organización o cuenta, es posible que necesite una directiva basada en la identidad. Para obtener más información, consulte Ejemplos de directivasAmazon Managed Streaming for Apache Kafka basadas en identidades en Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka.

Uso de la autenticación SASL/SCRAM

Amazon MSK admite autenticación simple y autenticación de capa de seguridad/mecanismo de autenticación de respuesta por desafío saltado (SASL/SCRAM). Puede controlar el acceso a los Amazon MSK clústeres configurando la autenticación de nombre de usuario y contraseña mediante un AWS Secrets Manager secreto. Para obtener más información, consulte Uso de autenticación de nombre de usuario y contraseña con AWS Secrets Manager en Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka.

Agregar un clúster Amazon MSK como origen de eventos

Puede utilizar una función Lambda para procesar registros del clúster de Apache Kafka cuando el clúster está configurado como origen de eventos. Para crear un mapeo de origen de eventos, puede agregar el clúster de Kafka como un desencadenador de función Lambda mediante la consola de Lambda, el SDK de AWS o la AWS Command Line Interface (AWS CLI).

En esta sección se describe cómo agregar el clúster y el tema de Kafka como un desencadenador de función mediante la consola de Lambda o la AWS CLI.

Requisitos previos

Configuración de la VPC

Para obtener Apache Kafka registros de Amazon MSK los brokers, Lambda debe tener acceso a los Amazon Virtual Private Cloud (Amazon VPC) recursos asociados con su clúster MSK. Para cumplir con los requisitos de acceso de la Amazon VPC, realice una de las siguientes acciones:

Los grupos Amazon VPC de seguridad deben configurarse con las siguientes reglas (como mínimo):

  • Reglas de entrada –: permitir todo el tráfico en todos los puertos del grupo de seguridad especificado como origen de evento.

  • Reglas de salida: permitir todo el tráfico en todos los puertos para todos los destinos.

nota

La configuración Amazon VPC se puede detectar a través de la Amazon MSK API y no necesita configurarse en la configuración create-event-source-mapping.

Añadir un clúster de Amazon MSK utilizando la consola Lambda

Siga estos pasos para agregar su clúster Amazon MSK y un tema Kafka como desencadenador de su función Lambda.

Para agregar un disparador MSK a su Lambda función (consola)

  1. Abra la Página de Funciones de la consola de Lambda.

  2. Elija el nombre de su función Lambda.

  3. En Function overview (Descripción general de la función), elija Add trigger (Agregar disparador).

  4. En Configuración del disparador, elija el tipo de desencadenador MSK.

  5. Configure las opciones restantes y luego elija Añadir.

Añadir un clúster de Amazon MSK mediante el comando AWS CLI

Utilice los siguientes AWS CLI comandos de ejemplo para crear y ver un Amazon MSK desencadenador para su función Lambda.

Crear un desencadenador mediante el AWS CLI

En el ejemplo siguiente se utiliza el comando de AWS CLI create-event-source-mapping para mapear una función Lambda denominada my-kafka-function en un tema de Kafka denominado AWSKafkaTopic. La posición inicial del tema está establecida en latest.

aws lambda create-event-source-mapping --event-source-arn arn:aws:kafka:us-west-2:arn:aws:kafka:us-west-2:111111111111:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 --topics AWSKafkaTopic --starting-position LATEST --function-name my-kafka-function

Para obtener más información, consulte la documentación de referencia de la API CreateEventSourceMapping.

Visualización del estado mediante el AWS CLI

En el ejemplo siguiente se utiliza el comando de AWS CLI get-event-source-mapping para describir el estado del mapeo de origen de eventos creado.

aws lambda get-event-source-mapping --uuid 6d9bce8e-836b-442c-8070-74e77903c815