web-dev-qa-db-fra.com

Kafka + AWS lambda

Est-il possible d'intégrer AWS Lambda à Apache Kafka? Je souhaite mettre un consommateur dans une fonction lambda. Lorsqu'un consommateur reçoit un message, la fonction lambda s'exécute.

6
lolix

Continuant le point par Arafat. Nous avons construit avec succès une infrastructure à consommer de Kafka avec AWS Lambdas. En voici quelques uns:

  • Assurez-vous de toujours mettre en lots et commettez en lisant en consommant.
  • Si vous stockez les lots sur s3, veillez à nettoyer vos descripteurs de fichier.
  • Si vous transférez les lots à un autre service, assurez-vous de nettoyer les variables. La mise en cache variable dans AWS Lambda peut entraîner des débordements de mémoire.
  • Une bonne idée est de vérifier combien de temps il vous reste de l'objet context dans Lambda et de vous laisser un peu de marge de manœuvre pour faire quelque chose avec le tampon que vous avez rempli dans votre consommateur et qui pourrait ne pas être lu dans un fichier à moins d'appeler close().

Nous utilisons Apache Airflow pour la planification. J'entends que cloudwatch peut le faire aussi.

8
darthsidious

Voici l'article AWS sur les lambdas programmés .

Étant donné que votre installation Kafka fonctionnera dans un VPC, la meilleure pratique consiste à configurer votre Lambda pour qu'il s'exécute également dans le VPC - cela simplifiera la configuration du groupe de sécurité pour les instances EC2 exécutant Kafka.

Here est l'article de blog AWS sur la configuration de Lambdas pour qu'il s'exécute dans un VPC.

3
Geoff

Oui, il est très possible d'avoir un consommateur Kafka dans la fonction AWS Lambda.

Cependant, notez que vous ne pourrez pas invoquer le lambda en utilisant une sorte de notification. Vous devrez plutôt interroger le sujet Kafka. Et le plus simple est d’utiliser un Lambda programmé

3
Arafat Nalkhande

Il existe un connecteur fourni par la communauté pour AWS Lambda . Cette solution nécessiterait que vous exécutiez le connecteur à un endroit tel que EC2 ou ECS.

0
Carl G