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 utilise les bibliothèques clientes natives pour établir une connexion à un cluster Kafka donné. Le connecteur fonctionne avec le client version 3.3.1. Toutefois, le connecteur peut établir une connectivité aux clusters Kafka depuis les 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 :
    • Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le 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 Connection Details (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 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 journaux de la connexion.
    5. Compte de service: sélectionnez un compte de service avec les rôles IAM requis pour la connexion Apache Kafka.
    6. L'option Activer l'abonnement aux événements, l'entité et les actions est sélectionnée par défaut pour la connexion Apache Kafka.
    7. Type de détection Scheme (Schéma de détection de type) : 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 du fichier RegistryUrl pour le sujet spécifié.
    11. Utilisateur du registre: valeur du nom d'utilisateur ou de la clé d'accès à autoriser avec le serveur spécifié dans RegistryUrl.
    12. Mot de passe du registre: code secret Secret Manager contenant le mot de passe ou la valeur de la clé secrète à autoriser avec le 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. Un plus grand nombre de nœuds est nécessaire afin de traiter plus de transactions pour une connexion. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre l'impact des nœuds sur 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 détermine si la technologie SSL est activée.
    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.
      1. Dans le champ Host address (Adresse de l'hôte), spécifiez le nom d'hôte ou l'adresse IP de la destination.
        1. Si vous souhaitez établir une connexion privée à vos systèmes backend, procédez comme suit :
          1. Créez un rattachement de service PSC.
          2. Créez un rattachement de point de terminaison, puis saisissez les détails du rattachement de point de terminaison dans le champ Adresse de l'hôte.
        2. Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité renforcée, vous pouvez configurer des adresses IP sortantes statiques pour vos connexions, puis configurer vos règles de pare-feu pour n'ajouter à la liste d'autorisation que les adresses IP statiques spécifiques.

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

    2. Cliquez sur 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:

          • Plaine
          • SCRAM-SHA-1
          • SCRAM-SHA-256
      • Non disponible

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

    2. Cliquez sur Suivant.
  7. Saisissez la configuration de lettre morte. 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 Pub/Sub de lettre morte.
    2. Sujet de lettre morte : le 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'est compatible avec aucune des opérations d'entité, celles-ci 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. 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 un maximum de 50 transactions par seconde et par nœud, et limite les transactions au-delà de cette limite. Par défaut, Integration Connectors alloue deux nœuds par connexion (pour une meilleure disponibilité).

Pour en savoir plus sur les limites applicables à Integration Connectors, consultez la section 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 Obligatoire Type de données Description
Sujet Oui Chaîne 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 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 Oui Chaîne 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 (horodatage Unix) à laquelle le message a été validé dans 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 l'écriture 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 de Confluent Cloud diffère légèrement des étapes précédemment documentées 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 la connexion aux serveurs d'amorçage. Si vous ne l'avez pas déjà fait, vous devez créer une clé API dans Confluent Cloud.
  • 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. Si vous ne l'avez pas déjà fait, vous devez créer une clé API Schema Registry.
      • 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 de détection Scheme (Schéma de détection de 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 la ressource Terraform pour créer une connexion.

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

    Pour voir un exemple de modèle Terraform pour créer des 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 Obligatoire Description
    type_detection_scheme ENUM Vrai Schéma utilisé pour l'authentification auprès du courtier Apache Kafka. Valeurs acceptées: MessageOnly
    registry_service ENUM Faux Service Schema Registry utilisé pour travailler avec des schémas avec sujets. Les valeurs acceptées sont: Confluent
    registry_type ENUM Faux Type du 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 de 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 Secret Manager contenant le mot de passe/la 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 dans Apigee Integration et Application Integration. Vous pouvez utiliser la connexion dans une intégration via la tâche "Connecteurs".

    • Pour découvrir comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez la page 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.

    Étapes suivantes