Apache Kafka

Le connecteur Apache Kafka vous permet d'effectuer des opérations d'insertion, de suppression, de mise à jour et de lecture sur la base de données Apache Kafka.

Versions compatibles

Le connecteur Apache Kafka exploite les bibliothèques clientes natives pour établir une connexion dans un cluster Kafka donné, et que le connecteur fonctionne avec la version 3.3.1 du client. Toutefois, le connecteur peuvent établir une connectivité aux clusters Kafka des versions 3.0 à 3.3.1.

Avant de commencer

Avant d'utiliser le connecteur Apache Kafka, effectuez les tâches suivantes :

  • Dans votre projet Google Cloud :
    • Accorder à l'utilisateur le rôle IAM roles/connectors.admin configuration du connecteur.
    • Attribuez les rôles IAM suivants au compte de service que vous souhaitez utiliser pour le connecteur :
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Un compte de service est un compte Google spécial destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google. Si vous ne possédez pas de compte de service, vous devez en créer un. Pour plus d'informations, consultez la section Créer un compte de service.

    • Activez les services suivants :
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Pour savoir comment activer des services, consultez la page Activer des services.

    Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer lors de la configuration du connecteur.

Configurer le connecteur

Pour configurer le connecteur, vous devez créer une connexion à votre source de données (système backend). Une connexion est spécifique à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit :

  1. Dans la console Cloud, accédez à la page Integration Connectors > Connections (Connecteurs d'intégration > Connexions), puis sélectionnez ou créez un projet Google Cloud.

    Accéder à la page "Connexions"

  2. Cliquez sur + CRÉER pour ouvrir la page Créer une connexion.
  3. À l'étape Emplacement, choisissez l'emplacement de la nouvelle connexion Apache Kafka:
    1. Région:sélectionnez une région dans la liste.
    2. Cliquez sur Suivant.
  4. À l'étape Détails de la connexion, fournissez les détails de la nouvelle connexion Apache Kafka:
    1. Version du connecteur:choisissez une version disponible du connecteur Apache Kafka dans la liste.
    2. Connection Name (Nom de la connexion) : saisissez un nom pour la connexion Apache Kafka.
    3. (Facultatif) Description : saisissez une description de la connexion.
    4. (Facultatif) Activer Cloud Logging:cochez cette case pour stocker toutes les données de journal de la connexion.
    5. Compte de service: sélectionnez un compte de service disposant des rôles IAM requis pour la connexion à Apache Kafka.
    6. L'option Activer l'abonnement aux événements, les entités et les actions est sélectionnée par défaut pour la connexion Apache Kafka.
    7. Type de détection du schéma : sélectionnez MessageOnly.
    8. Service de registre : service de registre de schéma utilisé pour travailler avec des schémas de sujet.
    9. Type de registre : type de schéma spécifié pour un sujet spécifique.
    10. Version du registre: version du schéma lue à partir de RegistryUrl pour le sujet spécifié.
    11. Utilisateur du registre: nom d'utilisateur ou clé d'accès à autoriser avec le serveur spécifié dans RegistryUrl.
    12. Mot de passe du registre: code secret du gestionnaire de secrets contenant la valeur du mot de passe/clé secrète à autoriser auprès du serveur spécifié dans RegistryUrl.
    13. Vous pouvez également configurer les paramètres du nœud de connexion :

      • Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
      • Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.

      Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Pour traiter plus de transactions pour une connexion, plus de nœuds sont nécessaires. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez la section Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour une meilleure disponibilité) et le nombre maximal sur 50.

    14. Vous pouvez également cliquer sur + AJOUTER UNE ÉTIQUETTE pour ajouter une étiquette à la connexion sous la forme d'une paire clé/valeur.
    15. Activer SSL: ce champ indique si SSL est activé.
    16. Cliquez sur Suivant.
  5. Dans la section Destinations, saisissez les informations concernant l'hôte distant (système backend) auquel vous souhaitez vous connecter.
    1. Type de destination : sélectionnez un type de destination.
      • Sélectionnez Adresse hôte dans la liste pour spécifier le nom d'hôte ou l'adresse IP de la destination.
      • Si vous souhaitez établir une connexion privée à vos systèmes backend, sélectionnez Rattachement du point de terminaison dans la liste, puis sélectionnez le rattachement du point de terminaison requis dans la liste Rattachement du point de terminaison.

      Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité supplémentaire, vous pouvez envisager de configurer des adresses IP sortantes statiques pour vos connexions, puis de configurer vos règles de pare-feu pour ajouter à la liste d'autorisation uniquement les adresses IP statiques spécifiques.

      Pour saisir d'autres destinations, cliquez sur + AJOUTER UNE DESTINATION.

    2. Cliquez sur Next (Suivant).
  6. Dans la section Authentification, saisissez les informations d'authentification.
    1. Sélectionnez un type d'authentification, puis saisissez les informations appropriées.

      Les types d'authentification suivants sont compatibles avec la connexion Apache Kafka :

      • Nom d'utilisateur et mot de passe
        • Nom d'utilisateur : nom d'utilisateur Apache Kafka à utiliser pour la connexion.
        • Mot de passe : secret Secret Manager contenant le mot de passe associé au nom d'utilisateur Apache Kafka.
        • Auth Scheme (Schéma d'authentification) : schéma utilisé pour l'authentification.

          Les schémas d'authentification suivants sont compatibles avec la connexion Apache Kafka:

          • Standard
          • SCRAM-SHA-1
          • SCRAM-SHA-256
      • Indisponible

        Si vous souhaitez utiliser la connexion anonyme, sélectionnez Non disponible.

    2. Cliquez sur Suivant.
  7. Saisissez la configuration de lettres mortes. Si vous configurez des lettres mortes, la connexion écrit les événements non traités dans le sujet Pub/Sub spécifié. Saisissez les informations suivantes:
    1. ID du projet de lettre morte : ID du projet Google Cloud dans lequel vous avez configuré le sujet de lettre morte Pub/Sub.
    2. Sujet de lettres mortes : sujet Pub/Sub dans lequel vous souhaitez écrire les détails de l'événement non traité.
  8. Cliquez sur Suivant.
  9. Vérifiez vos informations de connexion et d'authentification.
  10. Cliquez sur Créer.

Entités, opérations et actions

Tous les connecteurs Integration Connectors fournissent une couche d'abstraction pour les objets de l'application connectée. Vous ne pouvez accéder aux objets d'une application que via cette abstraction. L'abstraction vous est présentée en tant qu'entités, opérations et actions.

  • Entité : une entité peut être considérée comme un objet ou un ensemble de propriétés dans l'application ou le service connecté. La définition d'une entité diffère d'un connecteur à l'autre. Par exemple, dans un connecteur de base de données, les tables sont les entités, dans un connecteur de serveur de fichiers, les dossiers sont les entités et, dans un connecteur de système de messagerie, les files d'attente sont les entités.

    Toutefois, il est possible qu'un connecteur ne soit pas compatible ou ne possède aucune entité. Dans ce cas, la liste Entities est vide.

  • Opération : une opération est l'activité que vous pouvez effectuer sur une entité. Vous pouvez effectuer l'une des opérations suivantes sur une entité :

    La sélection d'une entité dans la liste disponible génère une liste d'opérations disponibles pour l'entité. Pour obtenir une description détaillée des opérations, consultez les opérations d'entité de la tâche de connecteur. Toutefois, si un connecteur n'accepte aucune des opérations d'entité, ne sont pas répertoriées dans la liste Operations.

  • Action : une action est une fonction de première classe mise à la disposition de l'intégration via l'interface du connecteur. Une action vous permet de modifier une ou plusieurs entités, et varie d'un connecteur à l'autre. Normalement, une action comporte des paramètres d'entrée et une sortie . Toutefois, il est possible qu'un connecteur ne prenne en charge aucune action, auquel cas la liste Actions est vide.

Limites du système

Le connecteur Apache Kafka peut traiter jusqu'à 50 transactions par seconde, par nœud, et restreint tout les transactions au-delà de cette limite. Par défaut, Integration Connectors alloue deux nœuds (pour une meilleure disponibilité) à une connexion.

Pour en savoir plus sur les limites applicables à Integration Connectors, consultez Limites.

Actions

Action PublishMessage

Cette action publie un message dans un sujet Apache Kafka. Les tableaux suivants décrivent les paramètres d'entrée et de sortie de l'action PublishMessage.

Paramètres d'entrée

Nom du paramètre Requis Type de données Description
Sujet Yes String Nom du sujet dans lequel vous souhaitez publier le message.
Partition Non Chaîne Partition à laquelle le message est attribué. La valeur doit être valide pour sur le sujet donné. Si vous ne définissez pas cette valeur, elle est automatiquement définie par le client natif.
Clé Non Chaîne Clé du message.
Message Yes String Message que vous souhaitez publier. Le message doit être un fichier JSON concaténé et la taille maximale du message est de 10 Mo.
HasBytes Non Booléen Indique si le message est au format binaire.
MessageBytes Non Chaîne Message sous la forme d'une chaîne encodée en base64.
Valider Non Booléen Spécifie si le message à publier doit être validé par rapport au schéma de message défini dans le registre de schéma du sujet. Si vous avez spécifié le registre de schéma lors de la création d'une connexion, la définition de schéma du sujet dans le registre est utilisée à des fins de validation. La valeur par défaut de ce champ est false.

Paramètres de sortie

Nom du paramètre Type de données Description
PartitionWritten Integer Partition sur laquelle le message a été écrit.
OffsetWritten Long Position dans la partition sur laquelle le message a été écrit.
TimestampWritten Long Heure (code temporel Unix) à laquelle le message a été validé sur la partition.
KeyWritten Chaîne Valeur de la clé du message qui a été écrite. La valeur est NULL si aucune clé de message n'a été fournie. lors de la rédaction du message.
Opération réussie Booléen Indique si le message a été publié.

Voici un exemple de réponse de l'action PublishMessage:

{Success: true,
PartitionWritten: 1,
OffsetWritten: 22301,
KeyWritten: "dGVzdA==",
TimestampWritten: 1690806748}

Configuration pour Confluent Cloud

La configuration pour Confluent Cloud est légèrement différente. des étapes documentées précédemment pour Apache Kafka. Tenez compte des points suivants lorsque vous créez une connexion pour Confluent Cloud :

  • La clé API du cluster Confluent Cloud est utilisée comme nom d'utilisateur, et le secret Secret Manager de la clé est utilisé comme mot de passe pour en se connectant aux serveurs d'amorçage. Vous devez créer une clé API dans Confluent Cloud si vous ne l'avez pas déjà fait.
  • Sélectionnez Utiliser SSL dans la section Connection Details.
  • Si vous utilisez Container Registry, configurez les valeurs suivantes :
    • Dans la section Connection Details :
      • Version du registre : saisissez le numéro de version du registre. Si vous souhaitez utiliser la dernière version saisissez latest.
      • Utilisateur du registre : saisissez la clé API du registre de schéma. Vous devez créer un registre de schémas si vous ne l'avez pas déjà fait.
      • Mot de passe du registre : saisissez le secret Secret Manager du mot de passe du registre.
      • Version du secret : sélectionnez le numéro de version du secret.
      • Type de registre : sélectionnez Confluent.
      • Type Detection Scheme (Schéma de détection du type) : sélectionnez MessageOnly
    • Dans la section Destinations, saisissez l'URL du registre dans le champ "Nom d'hôte".

    Utiliser Terraform pour créer des connexions

    Vous pouvez utiliser l'outil Terraform ressource pour créer une connexion.

    Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

    Pour afficher un exemple de modèle Terraform pour la création de connexions, consultez cet exemple de modèle.

    Lorsque vous créez cette connexion à l'aide de Terraform, vous devez définir les variables suivantes dans votre fichier de configuration Terraform:

    Nom du paramètre Type de données Requis Description
    type_detection_scheme ENUM Vrai Schéma utilisé pour l'authentification avec le courtier Apache Kafka. Les valeurs acceptées sont: MessageOnly
    registry_service ENUM Faux Service Schema Registry utilisé pour travailler avec des schémas de sujets. Valeurs acceptées: Confluent
    registry_type ENUM Faux Type de schéma spécifié pour un sujet spécifique. Les valeurs acceptées sont: AVRO et JSON.
    registry_version STRING Faux Version du schéma lue à partir de RegistryUrl pour le sujet spécifié. Les valeurs valides pour la version du registre sont comprises entre [1,2^31-1] ou la chaîne "latest", qui renvoie le dernier schéma enregistré.
    registry_user STRING Faux Nom d'utilisateur à autoriser avec le serveur spécifié dans RegistryUrl .
    registry_password SECRET Faux Secret du gestionnaire de secrets contenant le mot de passe/valeur de la clé secrète à autoriser avec le serveur spécifié dans RegistryUrl.
    usessl VALEUR BOOLÉENNE Faux Ce champ indique si SSL est activé.

    Utiliser la connexion Apache Kafka dans une intégration

    Une fois la connexion créée, elle devient disponible à la fois Apigee Integration et Application Integration. Vous pouvez utiliser la connexion lors d'une intégration via la tâche "Connecteurs".

    • Pour comprendre comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez la section Tâche Connecteurs.
    • Pour découvrir comment créer et utiliser la tâche Connecteurs dans Application Integration, consultez la section Tâche Connecteurs.

    Obtenir de l'aide auprès de la communauté Google Cloud

    Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.

    Étape suivante