In dieser Anleitung wird gezeigt, wie Sie Nachrichten aus Pub/Sub mit Kafka Connect in Ihren Managed Service for Apache Kafka-Cluster aufnehmen.
Kafka Connect verwaltet die Datenübertragung zwischen Ihrem Kafka-Cluster und anderen Systemen. In dieser Anleitung erstellen Sie einen Connect-Cluster und einen Pub/Sub-Quell-Connector. Der Pub/Sub-Quell-Connector liest Nachrichten aus Ihrem Pub/Sub-Thema und schreibt sie in ein Kafka-Thema.
Hinweis
Console
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Managed Kafka API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Managed Kafka API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Sie benötigen die folgenden Rollen für das Projekt: Managed Kafka Cluster Editor, Managed Kafka Connect Cluster Editor, Managed Kafka Connector Editor, Managed Kafka Topic Editor, Pub/Sub Editor
Rollen prüfen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
-
Suchen Sie in der Spalte Hauptkonto nach allen Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Fragen Sie Ihren Administrator, zu welchen Gruppen Sie gehören.
- Prüfen Sie in allen Zeilen, in denen Sie angegeben oder enthalten sind, die Spalte Rolle, um zu sehen, ob die Liste der Rollen die erforderlichen Rollen enthält.
Rollen zuweisen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriffsrechte erteilen.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
- Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
- Klicken Sie auf Weitere Rolle hinzufügen, wenn Sie weitere Rollen zuweisen möchten.
- Klicken Sie auf Speichern.
-
gcloud
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Managed Kafka API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable managedkafka.googleapis.com
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
Aktivieren Sie die Managed Kafka API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable managedkafka.googleapis.com
-
Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:
roles/managedkafka.clusterEditor, roles/managedkafka.connectClusterEditor, roles/managedkafka.connectorEditor, roles/managedkafka.topicEditor, roles/pubsub.editorgcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.USER_IDENTIFIER: Die Kennung für Ihr Nutzerkonto . Beispiel:myemail@example.comROLE: Die IAM-Rolle, die Sie Ihrem Nutzerkonto zuweisen.
Pub/Sub-Thema und -Abo erstellen
In diesem Schritt erstellen Sie ein Pub/Sub-Thema mit einem Abo.
Console
Rufen Sie die Seite Pub/Sub > Themen auf.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID einen Namen für das Thema ein.
Achten Sie darauf, dass das Kästchen Standardabo hinzufügen aktiviert ist.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl
gcloud pubsub topics createaus, um ein Pub/Sub-Thema zu erstellen.gcloud pubsub topics create TOPIC_IDErsetzen Sie
TOPIC_IDdurch einen Namen für Ihr Pub/Sub-Thema.Führen Sie den Befehl
gcloud pubsub subscriptions createaus, um ein Abo für Ihr Thema zu erstellen:gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_IDErsetzen Sie
SUBSCRIPTION_IDdurch einen Namen für Ihr Pub/Sub-Abo.
Informationen zum Benennen von Pub/Sub-Themen und ‑Abos finden Sie unter Richtlinien für die Benennung eines Themas oder Abos.
Managed Service for Apache Kafka-Ressourcen erstellen
In diesem Abschnitt erstellen Sie die folgenden Managed Service for Apache Kafka-Ressourcen:
- Ein Kafka-Cluster mit einem Thema.
- Ein Connect-Cluster mit einem Pub/Sub-Connector.
Kafka-Cluster erstellen
In diesem Schritt erstellen Sie einen Managed Service for Apache Kafka-Cluster. Das Erstellen eines Clusters kann bis zu 30 Minuten dauern.
Console
- Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
- Klicken Sie auf Erstellen.
- Geben Sie in das Feld Clustername einen Namen für den Cluster ein.
- Wählen Sie in der Liste Region einen Standort für den Cluster aus.
-
Konfigurieren Sie unter Netzwerkkonfiguration das Subnetz, in dem der Cluster zugänglich ist:
- Wählen Sie unter Projekt Ihr Projekt aus.
- Wählen Sie unter Netzwerk das VPC-Netzwerk aus.
- Wählen Sie das Subnetz für Subnetz aus.
- Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
Nachdem Sie auf Erstellen geklickt haben, ist der Clusterstatus Creating. Wenn der Cluster bereit ist, lautet der Status Active.
gcloud
Führen Sie den Befehl managed-kafka clusters
create aus, um einen Kafka-Cluster zu erstellen.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Ersetzen Sie Folgendes:
KAFKA_CLUSTER: ein Name für den Kafka-ClusterREGION: Der Standort des ClustersPROJECT_ID: Ihre Projekt-ID.SUBNET_NAME: Das Subnetz, in dem Sie den Cluster erstellen möchten, z. B.default
Informationen zu unterstützten Standorten finden Sie unter Managed Service for Apache Kafka-Standorte.
Der Befehl wird asynchron ausgeführt und gibt eine Vorgangs-ID zurück:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Verwenden Sie den Befehl gcloud managed-kafka
operations describe, um den Fortschritt des Erstellungsvorgangs zu verfolgen:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Wenn der Cluster bereit ist, enthält die Ausgabe dieses Befehls den Eintrag state:
ACTIVE. Weitere Informationen finden Sie unter Vorgang zum Erstellen von Clustern überwachen.
Kafka-Thema erstellen
Nachdem der Managed Service for Apache Kafka-Cluster erstellt wurde, erstellen Sie ein Kafka-Thema.
Console
Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
Klicken Sie auf den Namen des Clusters.
Klicken Sie auf der Cluster-Detailseite auf Thema erstellen.
Geben Sie im Feld Themenname einen Namen für das Thema ein.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl managed-kafka topics create aus, um ein Kafka-Thema zu erstellen.
gcloud managed-kafka topics create KAFKA_TOPIC_NAME \
--cluster=KAFKA_CLUSTER \
--location=REGION \
--partitions=10 \
--replication-factor=3
Ersetzen Sie Folgendes:
KAFKA_TOPIC_NAME: Der Name des Kafka-Themas, das erstellt werden soll.KAFKA_CLUSTER: Der Name des Kafka-ClustersREGION: Die Region, in der Sie den Kafka-Cluster erstellt haben
Connect-Cluster erstellen
In diesem Schritt erstellen Sie einen Connect-Cluster. Das Erstellen eines Connect-Clusters kann bis zu 30 Minuten dauern.
Bevor Sie mit diesem Schritt beginnen, muss der Managed Service for Apache Kafka-Cluster vollständig erstellt sein.
Console
Rufen Sie die Seite Managed Service for Apache Kafka > Connect-Cluster auf.
Klicken Sie auf Erstellen.
Geben Sie für Name des Connect-Clusters einen String ein. Beispiel:
my-connect-cluster.Wählen Sie unter Primärer Kafka-Cluster den zuvor erstellten Kafka-Cluster aus.
Klicken Sie auf Erstellen.
Während der Cluster erstellt wird, ist der Clusterstatus Creating. Wenn der Cluster erstellt wurde, lautet der Status Active.
gcloud
Führen Sie den Befehl gcloud managed-kafka connect-clusters create aus, um einen Connect-Cluster zu erstellen.
gcloud managed-kafka connect-clusters create CONNECT_CLUSTER \
--location=REGION \
--cpu=12 \
--memory=12GiB \
--primary-subnet=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
--kafka-cluster=KAFKA_CLUSTER \
--async
Ersetzen Sie Folgendes:
CONNECT_CLUSTER: ein Name für den Connect-ClusterREGION: Die Region, in der Sie den Kafka-Cluster erstellt habenPROJECT_ID: Ihre Projekt-ID.SUBNET_NAME: Das Subnetz, in dem Sie den Kafka-Cluster erstellt haben.KAFKA_CLUSTER: der Name Ihres Kafka-Clusters
Der Befehl wird asynchron ausgeführt und gibt eine Vorgangs-ID zurück:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Verwenden Sie den Befehl gcloud managed-kafka operations describe, um den Fortschritt des Erstellungsvorgangs zu verfolgen:
gcloud managed-kafka operations describe OPERATION_ID \
--location=REGION
Weitere Informationen finden Sie unter Vorgang zum Erstellen von Clustern überwachen.
IAM-Rollen zuweisen
Weisen Sie dem Managed Kafka-Dienstkonto die folgenden IAM-Rollen (Identity and Access Management) zu:
- Pub/Sub-Abonnent
- Pub/Sub-Betrachter
Mit diesen Rollen können Connectors Nachrichten aus Pub/Sub lesen.
Console
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
Suchen Sie die Zeile für Managed Kafka Service Account (Verwaltetes Kafka-Dienstkonto) und klicken Sie auf Edit principal (Hauptkonto bearbeiten).
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie die Rolle Pub/Sub-Abonnent aus. Wiederholen Sie diesen Schritt für die Rolle Pub/Sub Viewer.
Klicken Sie auf Speichern.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter IAM-Rolle über die Console zuweisen.
gcloud
Führen Sie den Befehl gcloud projects add-iam-policy-binding aus, um dem Dienstkonto IAM-Rollen zuzuweisen.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
--role=roles/pubsub.subscriber
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
--role=roles/pubsub.viewer
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.PROJECT_NUMBER: Ihre Projektnummer
Ihre Projektnummer finden Sie mit dem Befehl gcloud projects describe.
Pub/Sub-Quell-Connector erstellen
In diesem Schritt erstellen Sie einen Pub/Sub-Quell-Connector. Dieser Connector liest Nachrichten aus Pub/Sub und schreibt sie in ein Kafka-Thema.
Console
Rufen Sie die Seite Managed Service for Apache Kafka > Connect-Cluster auf.
Klicken Sie auf den Namen des Connect-Clusters.
Klicken Sie auf Connector erstellen.
Geben Sie für Connector-Name einen String ein. Beispiel:
pubsub-source.Wählen Sie in der Liste Connector-Plug-in die Option
Pub/Sub Sourceaus.Wählen Sie für Cloud Pub/Sub-Abo das Standard-Pub/Sub aus, das beim Erstellen des Pub/Sub-Themas erstellt wurde.
Wählen Sie für Kafka-Thema das Kafka-Thema aus, das Sie zuvor erstellt haben.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud managed-kafka connectors create aus, um einen Pub/Sub-Quell-Connector zu erstellen.
gcloud managed-kafka connectors create PUBSUB_CONNECTOR_NAME \
--connect-cluster=CONNECT_CLUSTER \
--location=REGION \
--configs=connector.class=com.google.pubsub.kafka.source.CloudPubSubSourceConnector,\
cps.project=PROJECT_ID,\
cps.streamingPull.enabled=true,\
cps.subscription=SUBSCRIPTION_ID,\
kafka.topic=KAFKA_TOPIC_NAME,\
key.converter=org.apache.kafka.connect.storage.StringConverter,\
tasks.max=3,\
value.converter=org.apache.kafka.connect.converters.ByteArrayConverter
Ersetzen Sie Folgendes:
PUBSUB_CONNECTOR_NAME: ein Name für den Connector, z. B.pubsub-source-connectorCONNECT_CLUSTER: der Name Ihres Connect-ClustersREGION: die Region, in der Sie den Connect-Cluster erstellt habenPROJECT_ID: Ihre Projekt-ID.KAFKA_TOPIC_NAME: Der Name Ihres Kafka-ThemasSUBSCRIPTION_ID: der Name Ihres Pub/Sub-Abos
Ergebnisse ansehen
Um die Ergebnisse zu sehen, veröffentlichen Sie einige Nachrichten in Pub/Sub.
Console
Rufen Sie in der Google Cloud Console die Seite Pub/Sub > Themen auf.
Klicken Sie in der Themenliste auf den Namen Ihres Pub/Sub-Themas.
Klicken Sie auf Nachrichten.
Klicken Sie auf Mitteilungen veröffentlichen.
Geben Sie für Anzahl der Nachrichten den Wert
10ein.Geben Sie als Inhalt der Nachricht
{"name": "Alice", "customer_id": 1}ein.Klicken Sie auf Veröffentlichen.
gcloud
Verwenden Sie den Befehl gcloud pubsub topics publish, um Nachrichten in Ihrem Pub/Sub-Thema zu veröffentlichen.
for run in {1..10}; do
gcloud pubsub topics publish TOPIC_ID --message='{"name": "Alice", "customer_id": 1}'
done
Ersetzen Sie TOPIC_ID durch den Namen Ihres Pub/Sub-Themas.
Sie können die Nachrichten jetzt aus dem Kafka-Thema abrufen. Weitere Informationen finden Sie unter Nachrichten mit der CLI erstellen und nutzen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Console
Löschen Sie das Pub/Sub-Thema.
Rufen Sie die Seite Pub/Sub > Themen auf.
Wählen Sie das Thema aus und klicken Sie auf Löschen.
Löschen Sie das Pub/Sub-Abo.
Rufen Sie die Seite Pub/Sub > Abos auf.
Wählen Sie das mit Ihrem Thema erstellte Abo aus und klicken Sie auf Löschen.
Löschen Sie den Connect-Cluster.
Rufen Sie die Seite Managed Service for Apache Kafka > Connect-Cluster auf.
Wählen Sie den Connect-Cluster aus und klicken Sie auf Löschen.
Löschen Sie den Kafka-Cluster.
Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
Wählen Sie den Kafka-Cluster aus und klicken Sie auf Löschen.
gcloud
Verwenden Sie die Befehle
gcloud pubsub subscriptions deleteundgcloud pubsub topics delete, um das Pub/Sub-Abo und -Thema zu löschen.gcloud pubsub subscriptions delete SUBSCRIPTION_ID gcloud pubsub topics delete TOPIC_IDVerwenden Sie den Befehl
gcloud managed-kafka connect-clusters delete, um den Connect-Cluster zu löschen.gcloud managed-kafka connect-clusters delete CONNECT_CLUSTER \ --location=REGION --asyncVerwenden Sie den Befehl
gcloud managed-kafka clusters delete, um den Kafka-Cluster zu löschen.gcloud managed-kafka clusters delete KAFKA_CLUSTER \ --location=REGION --async