Mit einem Confluent Cloud-Importthema können Sie Daten kontinuierlich aus Confluent Cloud als externe Quelle in Pub/Sub aufnehmen. Anschließend können Sie die Daten an eines der Ziele streamen, die von Pub/Sub unterstützt werden.
In diesem Dokument erfahren Sie, wie Sie Confluent Cloud-Importthemen erstellen und verwalten. Informationen zum Erstellen eines Standardthemas finden Sie unter Standardthema erstellen.
Weitere Informationen zu Importthemen finden Sie unter Importthemen.
Hinweise
Konfigurieren Sie die erforderlichen Rollen und Berechtigungen zum Verwalten von Confluent Cloud-Importthemen, einschließlich der folgenden:
Richten Sie eine Workload Identity-Föderation ein, damitGoogle Cloud auf den externen Streamingdienst zugreifen kann.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor
) für Ihr Thema oder Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von Confluent Cloud-Importthemen benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Verwalten von Confluent Cloud-Importthemen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Confluent Cloud-Importthemen zu erstellen und zu verwalten:
-
So erstellen Sie ein Importthema:
pubsub.topics.create
-
Importthema löschen:
pubsub.topics.delete
-
Importthema abrufen:
pubsub.topics.get
-
Importthema angeben:
pubsub.topics.list
-
In einem importierten Thema veröffentlichen:
pubsub.topics.publish
-
Importthema aktualisieren:
pubsub.topics.update
-
IAM-Richtlinie für ein Importthema abrufen:
pubsub.topics.getIamPolicy
-
Konfigurieren Sie die IAM-Richtlinie für ein Importthema:
pubsub.topics.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie können die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfigurieren.
Föderierte Identität für den Zugriff auf Confluent Cloud einrichten
Mit der Workload Identity-Föderation können Google Cloud -Dienste auf Arbeitslasten zugreifen, die außerhalb von Google Cloudausgeführt werden. Mit der Identitätsfederation müssen Sie keine Anmeldedaten verwalten oder weitergeben, Google Cloud um auf Ihre Ressourcen in anderen Clouds zuzugreifen. Stattdessen können Sie die Identitäten der Arbeitslasten selbst verwenden, um sich bei Google Cloud zu authentifizieren und auf Ressourcen zuzugreifen.
Dienstkonto in Google Clouderstellen
Dieser Schritt ist optional. Wenn Sie bereits ein Dienstkonto haben, können Sie es in diesem Verfahren verwenden, anstatt ein neues Dienstkonto zu erstellen. Wenn Sie ein vorhandenes Dienstkonto verwenden, fahren Sie mit Eindeutige ID des Dienstkontos erfassen fort.
Bei Confluent Cloud-Importthemen verwendet Pub/Sub das Dienstkonto als Identität, um auf Ressourcen von Confluent Cloud zuzugreifen.
Weitere Informationen zum Erstellen eines Dienstkontos, einschließlich Voraussetzungen, erforderlicher Rollen und Berechtigungen sowie Richtlinien für die Benennung, finden Sie unter Dienstkonten erstellen. Nachdem Sie ein Dienstkonto erstellt haben, müssen Sie möglicherweise 60 Sekunden oder länger warten, bis Sie das Dienstkonto verwenden können. Dieses Verhalten tritt auf, weil Lesevorgänge Eventual Consistency haben. Es kann einige Zeit dauern, bis das neue Dienstkonto sichtbar ist.
Notieren Sie sich die eindeutige ID des Dienstkontos.
Sie benötigen eine eindeutige ID für das Dienstkonto, um den Identitätsanbieter und den Pool in der Confluent Cloud Console einzurichten.
Rufen Sie in der Google Cloud Console die Seite Dienstkonto auf.
Klicken Sie auf das Dienstkonto, das Sie gerade erstellt haben oder das Sie verwenden möchten.
Notieren Sie sich auf der Seite Dienstkontodetails die eindeutige ID.
Sie benötigen die ID im Rahmen des Workflows, um den Identitätsanbieter und den Pool in der Confluent Cloud Console einzurichten.
Dem Pub/Sub-Dienstkonto die Rolle „Ersteller von Dienstkonto-Tokens“ hinzufügen
Mit der Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator
) können Hauptkonten kurzlebige Anmeldedaten für ein Dienstkonto erstellen. Diese Tokens oder Anmeldedaten werden verwendet, um das Dienstkonto zu imitieren.
Weitere Informationen zu Identitätswechsel für Dienstkonten.
Sie können während dieses Vorgangs auch die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher
) hinzufügen. Weitere Informationen zu dieser Rolle und warum Sie sie hinzufügen, finden Sie unter Dem Pub/Sub-Dienstkonto die Rolle „Pub/Sub-Publisher“ hinzufügen.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf das Kästchen Von Googlebereitgestellte Rollenzuweisungen einschließen.
Suchen Sie nach dem Dienstkonto im Format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Klicken Sie für dieses Dienstkonto auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Suchen Sie nach der Rolle „Ersteller von Dienstkonto-Tokens“ (
roles/iam.serviceAccountTokenCreator
) und klicken Sie darauf.Klicken Sie auf Speichern.
Identitätsanbieter in Confluent Cloud erstellen
Für die Authentifizierung bei Confluent Cloud benötigt das Google Cloud-Dienstkonto einen Identitätspool. Sie müssen zuerst einen Identitätsanbieter in Confluent Cloud erstellen.
Weitere Informationen zum Erstellen eines Identitätsanbieters in Confluent Cloud finden Sie auf der Seite OAuth/OIDC-Identitätsanbieter hinzufügen.
Melden Sie sich in der Confluent Cloud Console an.
Klicken Sie im Menü auf Konten und Zugriff.
Klicken Sie auf Workload Identitys.
Klicken Sie auf Anbieter hinzufügen.
Klicken Sie auf OAuth/OIDC und dann auf Weiter.
Klicken Sie auf Anderer OIDC-Anbieter und dann auf Weiter.
Geben Sie einen Namen und eine Beschreibung für den Zweck des Identitätsanbieters an.
Klicken Sie auf Erweiterte Konfiguration anzeigen.
Geben Sie im Feld Aussteller-URI den Wert
https://accounts.google.com
ein.Geben Sie im Feld JWKS-URI den Wert
https://www.googleapis.com/oauth2/v3/certs
ein.Klicken Sie auf Validieren und speichern.
Identitätspool erstellen und die entsprechenden Rollen in Confluent Cloud gewähren
Sie müssen einen Identitätspool unter Ihrem Identitätsprofil erstellen und die erforderlichen Rollen erteilen, damit sich das Pub/Sub-Dienstkonto authentifizieren und Daten aus Confluent Cloud-Kafka-Themen lesen kann.
Ihr Cluster muss in Confluent Cloud erstellt werden, bevor Sie mit dem Erstellen eines Identitätspools fortfahren können.
Weitere Informationen zum Erstellen eines Identitätspools finden Sie auf der Seite Identity Pools mit Ihrem OAuth-/OIDC-Identitätsanbieter verwenden.
Melden Sie sich in der Confluent Cloud Console an.
Klicken Sie im Menü auf Konten und Zugriff.
Klicken Sie auf Workload Identitys.
Klicken Sie auf den Identitätsanbieter, den Sie unter Identitätsanbieter in Confluent Cloud erstellen erstellt haben.
Klicken Sie auf Pool hinzufügen.
Geben Sie einen Namen und eine Beschreibung für den Identitätspool ein.
Legen Sie für Identity Claim die Option
claims
fest.Klicken Sie unter Filter festlegen auf den Tab Erweitert. Geben Sie den folgenden Code ein:
claims.iss=='https://accounts.google.com' && claims.sub=='<SERVICE_ACCOUNT_UNIQUE_ID>'
Ersetzen Sie
<SERVICE_ACCOUNT_UNIQUE_ID>
durch die eindeutige ID Ihres Dienstkontos, die Sie unter Eindeutige ID des Dienstkontos erfassen finden.Klicken Sie auf Weiter.
Klicken Sie auf Neue Berechtigung hinzufügen. Klicken Sie dann auf Weiter.
Klicken Sie im entsprechenden Cluster auf Rollenzuweisung hinzufügen.
Klicken Sie auf die Rolle Bediener und dann auf Hinzufügen.
Diese Rolle gewährt Pub/Sub. Dienstkontozugriff auf den Cluster mit dem Confluent Kafka-Thema, das Sie in Pub/Sub aufnehmen möchten.
Klicken Sie unter dem Cluster auf Themen. Klicken Sie dann auf Rollenzuweisung hinzufügen.
Wählen Sie die Rolle DeveloperRead aus.
Klicken Sie auf die entsprechende Option und geben Sie das Thema oder Präfix an. Beispiel: Bestimmtes Thema, Präfixregel oder Alle Themen.
Klicken Sie auf Hinzufügen.
Klicken Sie auf Weiter.
Klicken Sie auf Validieren und speichern.
Dem Pub/Sub-Principal die Pub/Sub-Publisher-Rolle hinzufügen
Um das Veröffentlichen zu aktivieren, müssen Sie dem Pub/Sub-Dienstkonto die Rolle „Publisher“ zuweisen, damit Pub/Sub im Confluent Cloud-Importthema veröffentlichen kann.
Veröffentlichung aus allen Themenbereichen aktivieren
Verwenden Sie diese Methode, wenn Sie noch keine Confluent Cloud-Importthemen erstellt haben.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf das Kästchen Von Googlebereitgestellte Rollenzuweisungen einschließen.
Suchen Sie nach dem Dienstkonto im Format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Klicken Sie für dieses Dienstkonto auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Suchen Sie nach der Rolle „Pub/Sub-Publisher“ (
roles/pubsub.publisher
) und klicken Sie darauf.Klicken Sie auf Speichern.
Veröffentlichungen aus einem einzelnen Thema aktivieren
Verwenden Sie diese Methode nur, wenn das Confluent Cloud-Importthema bereits vorhanden ist.
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.
Führen Sie den Befehl
gcloud pubsub topics add-iam-policy-binding
aus:gcloud pubsub topics add-iam-policy-binding TOPIC_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Ersetzen Sie Folgendes:
TOPIC_ID
: die Themen-ID des Confluent Cloud-Importthemas.PROJECT_NUMBER
: die Projektnummer Informationen zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.
Dem Dienstkonto die Rolle „Dienstkontonutzer“ hinzufügen
Die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser
) umfasst die Berechtigung iam.serviceAccounts.actAs
, mit der ein Hauptkonto ein Dienstkonto an die Aufnahmeeinstellungen des Confluent Cloud-Import-Themas anhängen und dieses Dienstkonto für die föderierte Identität verwenden kann.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie für das Hauptkonto, das die Aufrufe zum Erstellen oder Aktualisieren von Themen ausführt, auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Suchen Sie nach der Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) und klicken Sie darauf.Klicken Sie auf Speichern.
Themen mit Confluent Cloud importieren
Sie können ein neues Importthema erstellen oder ein vorhandenes Thema bearbeiten.
Hinweise
Wenn Sie das Thema und das Abo separat erstellen, kann dies zu Datenverlusten führen, auch wenn Sie dies in schneller Folge tun. Es gibt eine kurze Zeitspanne, in der das Thema ohne Abo verfügbar ist. Wenn während dieser Zeit Daten an das Thema gesendet werden, gehen sie verloren. Wenn Sie zuerst das Thema und dann das Abo erstellen und das Thema dann in ein Importthema umwandeln, wird sichergestellt, dass beim Import keine Nachrichten übersehen werden.
Wenn Sie das Kafka-Thema eines vorhandenen Importthemas mit demselben Namen neu erstellen möchten, können Sie das Kafka-Thema nicht einfach löschen und neu erstellen. Dadurch kann die Offset-Verwaltung von Pub/Sub ungültig werden, was zu Datenverlusten führen kann. So können Sie das Risiko minimieren:
- Löschen Sie das Pub/Sub-Importthema.
- Löschen Sie das Kafka-Thema.
- Erstellen Sie das Kafka-Thema.
- Erstellen Sie das Pub/Sub-Importthema.
Daten aus einem Confluent Cloud-Kafka-Thema werden immer vom ältesten Offset gelesen.
Confluent Cloud-Importthema erstellen
Weitere Informationen zu den Properties, die mit einem Thema verknüpft sind, finden Sie unter Properties eines Themas.
Führen Sie die folgenden Schritte aus:
Föderierte Identität für den Zugriff auf Confluent Cloud einrichten
Dem Pub/Sub-Dienstkonto die Rolle „Pub/Sub-Publisher“ hinzufügen
So erstellen Sie ein Confluent Cloud-Importthema:
Console
Rufen Sie in der Google Cloud Console die Seite Themen auf.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID eine ID für das Importthema ein.
Weitere Informationen zur Benennung von Themen finden Sie in den Richtlinien für die Benennung von Themen.
Wählen Sie Standardabo hinzufügen aus.
Wählen Sie Aufnahme aktivieren aus.
Wählen Sie als Datenaufnahmequelle Confluent Cloud aus.
Geben Sie die folgenden Informationen ein:
Bootstrap-Server: Der Bootstrap-Server Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmen. Das Format ist
hostname:port
.Cluster-ID: Die ID Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmen.
Topic: Der Name des Kafka-Themas, das Sie in Pub/Sub aufnehmen.
Identity Pool-ID: Die Pool-ID des Identitätspools, die für die Authentifizierung bei Confluent Cloud verwendet wird.
Dienstkonto:Das Dienstkonto, das Sie unter Dienstkonto in Google Cloud erstellen erstellt haben.
Klicken Sie auf Thema erstellen.
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.
Zum Abrufen der aktuellen Richtlinie führen Sie den Befehl
gcloud pubsub topics create
aus: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
Ersetzen Sie Folgendes:
TOPIC_ID
: der Name oder die ID Ihres Pub/Sub-Themas.CONFLUENT_BOOTSTRAP_SERVER
: Der Bootstrap-Server Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmen. Das Format isthostname:port
.CONFLUENT_CLUSTER_ID
: die ID Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmen.CONFLUENT_TOPIC
: der Name des Kafka-Themas, das Sie in Pub/Sub aufnehmen.CONFLUENT_IDENTITY_POOL_ID
: die Pool-ID des Identitätspools, der für die Authentifizierung bei Confluent Cloud verwendet wird.PUBSUB_SERVICE_ACCOUNT
: Das Dienstkonto, das Sie unter Dienstkonto in Google Cloud erstellen erstellt haben.
Go
Folgen Sie der Einrichtungsanleitung für Go in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Folgen Sie der Einrichtungsanleitung für Node.js in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C++
Folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js (TypeScript)
Lesen Sie unter Pub/Sub-Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Falls Probleme auftreten, lesen Sie den Hilfeartikel Probleme beim Importieren von Topics aus Confluent Cloud beheben.
Importthema für Confluent Cloud Hubs bearbeiten
So bearbeiten Sie die Einstellungen der Datenaufnahmequelle eines Confluent Cloud-Importthemas:
Console
Rufen Sie in der Google Cloud Console die Seite Themen auf.
Klicken Sie auf das Importthema für Confluent Cloud.
Klicken Sie auf der Seite mit den Themendetails auf Bearbeiten.
Aktualisieren Sie die Felder, die Sie ändern möchten.
Klicken Sie auf Aktualisieren.
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.
Damit die Einstellungen für das importierte Thema nicht verloren gehen, sollten Sie sie jedes Mal angeben, wenn Sie das Thema aktualisieren. Wenn du etwas auslässt, wird die Einstellung von Pub/Sub auf den ursprünglichen Standardwert zurückgesetzt.
Führen Sie den Befehl
gcloud pubsub topics update
mit allen im folgenden Beispiel genannten Flags aus: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
Ersetzen Sie Folgendes:
TOPIC_ID
: der Name oder die ID Ihres Pub/Sub-Themas.CONFLUENT_BOOTSTRAP_SERVER
: Der Bootstrap-Server Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmen. Das Format isthostname:port
.CONFLUENT_CLUSTER_ID
: Die ID Ihres Clusters, der das Kafka-Thema enthält, das Sie in Pub/Sub aufnehmenCONFLUENT_TOPIC
: Der Name des Kafka-Themas, das Sie in Pub/Sub aufnehmen.CONFLUENT_IDENTITY_POOL_ID
: Die Pool-ID des Identitätspools, der für die Authentifizierung bei Confluent Cloud verwendet wird.CONFLUENT_IDENTITY_POOL_ID
: Das Dienstkonto, das Sie unter Dienstkonto in Google Cloud erstellen erstellt haben.
Kontingente und Limits
Der Publisher-Durchsatz für importierte Themen ist durch das Publish-Kontingent des Themas begrenzt. Weitere Informationen finden Sie unter Pub/Sub-Kontingente und Limits.
Nächste Schritte
Wählen Sie den Abotyp für Ihr Thema aus.
Weitere Informationen zum Veröffentlichen von Nachrichten in einem Thema
Themen mit der gcloud CLI, REST APIs oder Clientbibliotheken erstellen oder ändern
Probleme beim Importieren von Confluent Cloud-Themen beheben