Création d’un mappage des sources d’événements Lambda pour une source d’événements Apache Kafka autogéré - AWS Lambda

Création d’un mappage des sources d’événements Lambda pour une source d’événements Apache Kafka autogéré

Pour créer un mappage des sources d’événements, vous pouvez utiliser la console Lambda, AWS Command Line Interface (CLI) ou un SDK AWS.

Les étapes de console suivantes ajoutent un cluster Apache Kafka autogéré en tant que déclencheur pour votre fonction Lambda. En arrière-plan, cela crée une ressource de mappage des sources d’événements.

Prérequis

  • Cluster Apache Kafka autogéré. Lambda prend en charge Apache Kafka versions 0.10.1.0 et ultérieures.

  • Un rôle d'exécution avec l'autorisation d'accéder aux ressources AWS utilisées par votre cluster Kafka autogéré.

Ajout d’un cluster Kafka autogéré (console)

Pour ajouter votre cluster Apache Kafka autogéré et une rubrique Kafka en tant que déclencheur pour votre fonction Lambda, procédez comme suit.

Pour ajouter un déclencheur Apache Kafka à votre fonction Lambda (console)
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de votre fonction Lambda.

  3. Sous Function overview (Vue d’ensemble de la fonction), choisissez Add trigger (Ajouter un déclencheur).

  4. Sous Trigger configuration (Configuration du déclencheur), procédez comme suit :

    1. Choisissez le type de déclencheur Apache Kafka.

    2. Pour Bootstrap servers (Serveurs d’amorçage), entrez l’adresse de paire hôte et port d’un agent Kafka dans votre cluster, puis choisissez Add (Ajouter). Répétez l’opération pour chaque agent Kafka dans le cluster.

    3. Pour Topic name (Nom de rubrique), entrez le nom de la rubrique Kafka utilisée pour stocker les registres dans le cluster.

    4. (Facultatif) Pour Batch size (Taille de lot), entrez le nombre maximal de registres à recevoir dans un même lot.

    5. Pour Batch window, veuillez saisir l’intervalle de temps maximal en secondes nécessaire à Lambda pour collecter des enregistrements avant d’invoquer la fonction.

    6. (Facultatif) Pour l’identifiant de groupe de consommateurs, entrez l’identifiant d’un groupe de consommateurs Kafka à rejoindre.

    7. (Facultatif) Pour Position de départ, choisissez Dernier pour commencer à lire le flux à partir du dernier enregistrement, Supprimer l’horizon pour commencer au premier enregistrement disponible ou À l’horodatage pour spécifier un horodatage à partir duquel commencer la lecture.

    8. (Facultatif) Pour VPC, choisissez l’Amazon VPC pour votre cluster Kafka. Ensuite, choisissez le VPC subnets (Sous-réseaux VPC) et les VPC security groups (Groupes de sécurité VPC).

      Ce paramètre est requis si seuls des utilisateurs au sein de votre VPC accèdent à vos courtiers.

    9. (Facultatif) Pour Authentication (Authentification), choisissez Add (Ajouter), puis procédez comme suit :

      1. Choisissez le protocole d’accès ou d’authentification des courtiers Kafka dans votre cluster.

        • Si votre agent Kafka utilise l’authentification SASL/PLAIN, choisissez BASIC_AUTH.

        • Si votre agent utilise une authentification SASL/SCRAM, choisissez l’un des protocoles SASL_SCRAM.

        • Si vous configurez l’authentification mTLS, choisissez le protocole CLIENT_CERTIFICATE_TLS_AUTH.

      2. Pour l’authentification SASL/SCRAM ou mTLS, choisissez le nom de la clé secrète Secrets Manager contenant les informations d’identification de votre cluster Kafka.

    10. (Facultatif) Pour Encryption (Chiffrement), choisissez le secret Secrets Manager contenant le certificat d’autorité de certification racine que vos courtiers Kafka utilisent pour le chiffrement TLS, si vos courtiers Kafka utilisent des certificats signés par une autorité de certification privée.

      Ce paramètre s’applique au chiffrement TLS pour SASL/SCRAM ou SASL/PLAIN, ainsi qu’à l’authentification mTLS.

    11. Pour créer le déclencheur dans un état désactivé pour le test (recommandé), désactivez Enable trigger (Activer le déclencheur). Ou, pour activer le déclencheur immédiatement, sélectionnezActiver un déclencheur.

  5. Pour créer le déclencheur, choisissez Add (Ajouter).

Ajout d’un cluster Kafka autogéré (AWS CLI)

Utilisez les exemples de commandes AWS CLI suivants afin de créer et d’afficher un déclencheur Apache Kafka autogéré pour votre fonction Lambda.

Utilisation de SASL/SCRAM

Si des utilisateurs de Kafka accèdent à vos courtiers Kafka via Internet, spécifiez le secret Secrets Manager que vous avez créé pour l’authentification SASL/SCRAM. L’exemple suivant utilise la commande create-event-source-mapping de l’AWS CLI pour mapper une fonction Lambda nommée my-kafka-function à une rubrique Kafka nommée AWSKafkaTopic.

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:111122223333:secret:MyBrokerSecretName \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

Utilisation d’un VPC

Si seuls des utilisateurs de Kafka au sein de votre VPC accèdent à vos agents Kafka, vous devez spécifier votre VPC, vos sous-réseaux et votre groupe de sécurité de VPC. L’exemple suivant utilise la commande create-event-source-mapping de l’AWS CLI pour mapper une fonction Lambda nommée my-kafka-function à une rubrique Kafka nommée AWSKafkaTopic.

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration '[{"Type": "VPC_SUBNET", "URI": "subnet:subnet-0011001100"}, {"Type": "VPC_SUBNET", "URI": "subnet:subnet-0022002200"}, {"Type": "VPC_SECURITY_GROUP", "URI": "security_group:sg-0123456789"}]' \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

Affichage du statut par le biais de l’AWS CLI

L’exemple suivant utilise la commande get-event-source-mapping de l’AWS CLI pour décrire l’état du mappage des sources d’événements que vous avez créé.

aws lambda get-event-source-mapping --uuid dh38738e-992b-343a-1077-3478934hjkfd7