Un sujet d'importation Confluent Cloud vous permet d'ingérer en continu des données à partir de Confluent Cloud en tant que source externe et dans Pub/Sub. Vous pouvez ensuite diffuser les données dans l'une des destinations compatibles avec Pub/Sub.
Ce document explique comment créer et gérer des sujets d'importation Confluent Cloud. Pour créer un sujet standard, consultez Créer un sujet standard.
Pour en savoir plus sur les sujets d'importation, consultez la page À propos des sujets d'importation.
Avant de commencer
En savoir plus sur le processus de publication Pub/Sub
Configurez les rôles et autorisations requis pour gérer les sujets d'importation Confluent Cloud, y compris les suivants:
Configurez la fédération d'identité de charge de travail afin queGoogle Cloud puisse accéder au service de streaming externe.
Rôles et autorisations requis
Pour obtenir les autorisations nécessaires pour créer et gérer des sujets d'importation Confluent Cloud, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.editor
) sur votre sujet ou votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour créer et gérer des sujets d'importation Confluent Cloud. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer et gérer des sujets d'importation Confluent Cloud:
-
Créez un sujet d'importation :
pubsub.topics.create
-
Supprimer un thème d'importation :
pubsub.topics.delete
-
Obtenir un sujet d'importation :
pubsub.topics.get
-
Lister un sujet d'importation :
pubsub.topics.list
-
Publier dans un sujet d'importation :
pubsub.topics.publish
-
Mettre à jour un sujet d'importation :
pubsub.topics.update
-
Obtenez la stratégie IAM pour un sujet d'importation :
pubsub.topics.getIamPolicy
-
Configurez la stratégie IAM pour un sujet d'importation :
pubsub.topics.setIamPolicy
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de ressources individuelles.
Configurer une identité fédérée pour accéder à Confluent Cloud
La fédération d'identité de charge de travail permet aux services Google Cloud d'accéder aux charges de travail exécutées en dehors de Google Cloud. Avec la fédération d'identités, vous n'avez pas besoin de gérer ni de transmettre des identifiants à Google Cloud pour accéder à vos ressources dans d'autres clouds. À la place, vous pouvez utiliser les identités des charges de travail elles-mêmes pour vous authentifier auprès de Google Cloud et accéder aux ressources.
Créer un compte de service dans Google Cloud
Il s'agit d'une étape facultative. Si vous disposez déjà d'un compte de service, vous pouvez l'utiliser dans cette procédure au lieu d'en créer un autre. Si vous utilisez un compte de service existant, consultez la section Enregistrer l'ID unique du compte de service pour l'étape suivante.
Pour les sujets d'importation Confluent Cloud, Pub/Sub utilise le compte de service comme identité pour accéder aux ressources de Confluent Cloud.
Pour en savoir plus sur la création d'un compte de service, y compris sur les conditions préalables, les rôles et autorisations requis, ainsi que les consignes de dénomination, consultez la section Créer des comptes de service. Une fois le compte de service créé, vous devrez peut-être attendre au moins 60 secondes avant de l'utiliser. Ce comportement se produit car les opérations de lecture sont cohérentes à terme. Il peut s'écouler un certain temps avant que le nouveau compte de service devienne visible.
Enregistrer l'ID unique du compte de service
Vous avez besoin d'un ID unique de compte de service pour configurer le fournisseur d'identité et le pool dans la console Confluent Cloud.
Dans la console Google Cloud, accédez à la page d'informations sur le compte de service.
Cliquez sur le compte de service que vous venez de créer ou celui que vous prévoyez d'utiliser.
Sur la page Détails du compte de service, notez le numéro d'ID unique.
Vous aurez besoin de cet ID dans le workflow pour configurer le fournisseur d'identité et le pool dans la console Confluent Cloud.
Ajouter le rôle Créateur de jetons du compte de service au compte de service Pub/Sub
Le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator
) permet aux comptes principaux de créer des identifiants éphémères pour un compte de service. Ces jetons ou identifiants sont utilisés pour usurper l'identité du compte de service.
Pour plus d'informations sur l'emprunt de l'identité d'un compte de service, consultez la page Emprunter l'identité d'un compte de service.
Vous pouvez également ajouter le rôle Éditeur Pub/Sub (roles/pubsub.publisher
) au cours de cette procédure. Pour en savoir plus sur ce rôle et pourquoi vous l'ajoutez, consultez Ajouter le rôle d'éditeur Pub/Sub au compte de service Pub/Sub.
Dans la console Google Cloud, accédez à la page IAM.
Cochez la case Inclure les attributions de rôles fournies par Google.
Recherchez le compte de service au format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator
).Cliquez sur Enregistrer.
Créer un fournisseur d'identité dans Confluent Cloud
Pour s'authentifier auprès de Confluent Cloud, le compte de service Google Cloud a besoin d'un pool d'identités. Vous devez d'abord créer un fournisseur d'identité dans Confluent Cloud.
Pour en savoir plus sur la création d'un fournisseur d'identité dans Confluent Cloud, consultez la page Ajouter un fournisseur d'identité OAuth/OIDC.
Connectez-vous à la console Confluent Cloud.
Dans le menu, cliquez sur Comptes et accès.
Cliquez sur Identités de charge de travail.
Cliquez sur Ajouter un fournisseur.
Cliquez sur OAuth/OIDC, puis sur Suivant.
Cliquez sur Autre fournisseur OIDC, puis sur Suivant.
Indiquez un nom et une description de l'objectif du fournisseur d'identité.
Cliquez sur Afficher la configuration avancée.
Dans le champ URI de l'émetteur, saisissez
https://accounts.google.com
.Dans le champ URI JWKS, saisissez
https://www.googleapis.com/oauth2/v3/certs
.Cliquez sur Valider et enregistrer.
Créer un pool d'identités et accorder les rôles appropriés dans Confluent Cloud
Vous devez créer un pool d'identité sous votre profil d'identité et accorder les rôles nécessaires pour autoriser le compte de service Pub/Sub à s'authentifier et à lire les sujets Kafka Confluent Cloud.
Assurez-vous que votre cluster est créé dans Confluent Cloud avant de créer un pool d'identités.
Pour en savoir plus sur la création d'un pool d'identités, consultez la page Utiliser des pools d'identités avec votre fournisseur d'identité OAuth/OIDC.
Connectez-vous à la console Confluent Cloud.
Dans le menu, cliquez sur Comptes et accès.
Cliquez sur Identités de charge de travail.
Cliquez sur le fournisseur d'identité que vous avez créé dans Créer un fournisseur d'identité dans Confluent Cloud.
Cliquez sur Add pool (Ajouter un pool).
Attribuez un nom et une description à votre pool d'identités.
Définissez Identité sur
claims
.Sous Définir des filtres, cliquez sur l'onglet Avancé. Saisissez le code ci-dessous :
claims.iss=='https://accounts.google.com' && claims.sub=='<SERVICE_ACCOUNT_UNIQUE_ID>'
Remplacez
<SERVICE_ACCOUNT_UNIQUE_ID>
par l'ID unique de votre compte de service, que vous trouverez dans Enregistrer l'ID unique du compte de service.Cliquez sur Suivant.
Cliquez sur Ajouter une autorisation. Cliquez ensuite sur Suivant.
Dans le cluster approprié, cliquez sur Ajouter une attribution de rôle.
Cliquez sur le rôle Opérateur, puis sur Ajouter.
Ce rôle accorde Pub/Sub. Accès du compte de service au cluster contenant le sujet Confluent Kafka que vous souhaitez ingérer dans Pub/Sub.
Sous le cluster, cliquez sur Sujets. Cliquez ensuite sur Ajouter une attribution de rôle.
Sélectionnez le rôle DeveloperRead.
Cliquez sur l'option appropriée, puis spécifiez le sujet ou le préfixe. Par exemple, Thème spécifique, Règle de préfixe ou Tous les thèmes.
Cliquez sur Ajouter.
Cliquez sur Suivant.
Cliquez sur Valider et enregistrer.
Ajouter le rôle d'éditeur Pub/Sub au principal Pub/Sub
Pour activer la publication, vous devez attribuer un rôle d'éditeur au compte de service Pub/Sub afin que Pub/Sub puisse publier dans le sujet d'importation Confluent Cloud.
Activer la publication à partir de tous les thèmes
Utilisez cette méthode si vous n'avez pas créé de sujets d'importation Confluent Cloud.
Dans la console Google Cloud, accédez à la page IAM.
Cochez la case Inclure les attributions de rôles fournies par Google.
Recherchez le compte de service au format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
).Cliquez sur Enregistrer.
Activer la publication à partir d'un seul sujet
N'utilisez cette méthode que si le sujet d'importation Confluent Cloud existe déjà.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Remplacez les éléments suivants :
TOPIC_ID
: ID du sujet de l'importation Confluent Cloud.PROJECT_NUMBER
: Numéro du projet Pour afficher le numéro de projet, consultez Identifier des projets.
Ajouter le rôle Utilisateur du compte de service au compte de service
Le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser
) inclut l'autorisation iam.serviceAccounts.actAs
qui permet à un principal d'associer un compte de service aux paramètres d'ingestion du sujet d'importation Confluent Cloud et d'utiliser ce compte de service pour l'identité fédérée.
Dans la console Google Cloud, accédez à la page IAM.
Pour le compte principal qui émet les appels de création ou de mise à jour de sujets, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur Rôle Utilisateur du compte de service (
roles/iam.serviceAccountUser
).Cliquez sur Enregistrer.
Utiliser des sujets d'importation Confluent Cloud
Vous pouvez créer un sujet d'importation ou modifier un sujet existant.
Remarques
Créer le sujet et l'abonnement séparément, même en succession rapide, peut entraîner une perte de données. Il existe une courte période pendant laquelle le sujet existe sans abonnement. Si des données sont envoyées au sujet pendant cette période, elles sont perdues. En créant d'abord le sujet, puis l'abonnement, puis en convertissant le sujet en sujet d'importation, vous vous assurez qu'aucun message n'est manqué pendant le processus d'importation.
Si vous devez recréer le sujet Kafka d'un sujet d'importation existant portant le même nom, vous ne pouvez pas simplement supprimer le sujet Kafka et le recréer. Cette action peut invalider la gestion des décalages de Pub/Sub, ce qui peut entraîner une perte de données. Pour limiter ce problème, procédez comme suit:
- Supprimez le sujet d'importation Pub/Sub.
- Supprimez le sujet Kafka.
- Créez le sujet Kafka.
- Créez le sujet d'importation Pub/Sub.
Les données d'un sujet Confluent Cloud Kafka sont toujours lues à partir du décalage le plus ancien.
Créer un sujet d'importation Confluent Cloud
Pour en savoir plus sur les propriétés associées à un sujet, consultez la section Propriétés d'un sujet.
Assurez-vous d'avoir effectué les procédures suivantes:
Configurer une identité fédérée pour accéder à Confluent Cloud
Ajouter le rôle Éditeur Pub/Sub au compte de service Pub/Sub
Ajouter le rôle "Utilisateur du compte de service" au compte de service
Pour créer un sujet d'importation Confluent Cloud, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Topics (Sujets).
Cliquez sur Create topic (Créer un sujet).
Dans le champ ID du sujet, saisissez un ID pour votre sujet d'importation.
Pour en savoir plus sur la dénomination des sujets, consultez les consignes d'attribution de noms.
Sélectionnez Ajouter un abonnement par défaut.
Sélectionnez Activer l'ingestion.
Pour la source d'ingestion, sélectionnez Confluent Cloud.
Saisissez les informations suivantes :
Serveur d'amorçage: serveur d'amorçage de votre cluster contenant le sujet Kafka que vous insérez dans Pub/Sub. Le format est le suivant:
hostname:port
.ID de cluster: ID de votre cluster contenant le sujet Kafka que vous insérez dans Pub/Sub.
Topic (Sujet) : nom du sujet Kafka que vous insérez dans Pub/Sub.
ID du pool d'identités: ID du pool d'identités utilisé pour l'authentification avec Confluent Cloud.
Compte de service:compte de service que vous avez créé dans Créer un compte de service dans Google Cloud.
Cliquez sur Create topic (Créer un sujet).
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID \ --confluent-cloud-ingestion-bootstrap-server CONFLUENT_BOOTSTRAP_SERVER \ --confluent-cloud-ingestion-cluster-id CONFLUENT_CLUSTER_ID \ --confluent-cloud-ingestion-topic CONFLUENT_TOPIC \ --confluent-cloud-ingestion-identity-pool-id CONFLUENT_IDENTITY_POOL_ID \ --confluent-cloud-ingestion-service-account PUBSUB_SERVICE_ACCOUNT
Remplacez les éléments suivants :
TOPIC_ID
: nom ou ID de votre sujet Pub/Sub.CONFLUENT_BOOTSTRAP_SERVER
: serveur d'amorçage de votre cluster contenant le sujet Kafka que vous insérez dans Pub/Sub. Le format est le suivant:hostname:port
.CONFLUENT_CLUSTER_ID
: ID de votre cluster contenant le sujet Kafka que vous insérez dans Pub/Sub.CONFLUENT_TOPIC
: nom du sujet Kafka que vous insérez dans Pub/Sub.CONFLUENT_IDENTITY_POOL_ID
: ID du pool d'identités utilisé pour s'authentifier avec Confluent Cloud.PUBSUB_SERVICE_ACCOUNT
: compte de service que vous avez créé dans Créer un compte de service dans Google Cloud.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Go.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Java.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Node.js.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Python.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C++
Avant d'essayer cet exemple, suivez les instructions de configuration pour C++ du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub C++.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js (TypeScript)
Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js décrites dans le guide de démarrage rapide de Pub/Sub : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Pour vous authentifier auprès de Pub/Sub, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Si vous rencontrez des problèmes, consultez Résoudre les problèmes liés à un sujet d'importation Confluent Cloud.
Modifier un sujet d'importation Confluent Cloud Hubs
Pour modifier les paramètres de la source de données d'ingestion d'un sujet d'importation Confluent Cloud, procédez comme suit:
Console
Dans la console Google Cloud, accédez à la page Topics (Sujets).
Cliquez sur le sujet "Importation Confluent Cloud".
Sur la page des détails de l'article, cliquez sur Modifier.
Modifiez les champs que vous souhaitez modifier.
Cliquez sur Mettre à jour.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Pour éviter de perdre vos paramètres pour le sujet d'importation, veillez à les inclure tous chaque fois que vous mettez à jour le sujet. Si vous omettez quelque chose, Pub/Sub rétablit le paramètre sur sa valeur par défaut d'origine.
Exécutez la commande
gcloud pubsub topics update
avec tous les indicateurs mentionnés dans l'exemple suivant:gcloud pubsub topics update TOPIC_ID \ --confluent-cloud-ingestion-bootstrap-server CONFLUENT_BOOTSTRAP_SERVER \ --confluent-cloud-ingestion-cluster-id CONFLUENT_CLUSTER_ID \ --confluent-cloud-ingestion-topic CONFLUENT_TOPIC \ --confluent-cloud-ingestion-identity-pool-id CONFLUENT_IDENTITY_POOL_ID \ --confluent-cloud-ingestion-service-account PUBSUB_SERVICE_ACCOUNT
Remplacez les éléments suivants :
TOPIC_ID
: nom ou ID de votre sujet Pub/Sub.CONFLUENT_BOOTSTRAP_SERVER
: le serveur d'amorçage de votre cluster contenant le sujet Kafka que vous insérez dans Pub/Sub. Le format est le suivant:hostname:port
.CONFLUENT_CLUSTER_ID
: ID de votre cluster contenant le sujet Kafka que vous insérez dans Pub/SubCONFLUENT_TOPIC
: nom du sujet Kafka que vous insérez dans Pub/Sub.CONFLUENT_IDENTITY_POOL_ID
: ID du pool d'identités utilisé pour s'authentifier avec Confluent Cloud.CONFLUENT_IDENTITY_POOL_ID
: compte de service que vous avez créé dans Créer un compte de service dans Google Cloud.
Quotas et limites
Le débit de l'éditeur pour les sujets d'importation est limité par le quota de publication du sujet. Pour en savoir plus, consultez la section Quotas et limites de Pub/Sub.
Étape suivante
Choisissez le type d'abonnement pour votre sujet.
Découvrez comment publier un message dans un sujet.
Créez ou modifiez un sujet avec la gcloud CLI, les API REST ou les bibliothèques clientes.
Résoudre les problèmes liés à un sujet d'importation Confluent Cloud