In dieser Anleitung wird gezeigt, wie Sie mit Kafka Connect Nachrichten aus Ihrem Managed Service for Apache Kafka-Cluster in Cloud Storage schreiben.
Kafka Connect verwaltet die Datenübertragung zwischen Ihrem Kafka-Cluster und anderen Systemen. In dieser Anleitung erstellen Sie einen Connect-Cluster und einen Cloud Storage-Senken-Connector. Der Senken-Connector von Cloud Storage liest Nachrichten aus Kafka und schreibt sie in einen Cloud Storage-Bucket.
Hinweis
Console
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Prüfen Sie, ob Sie die folgenden Rollen für das Projekt haben: Managed Kafka Cluster Editor, Managed Kafka Connect Cluster Editor, Managed Kafka Connector Editor, Managed Kafka Topic Editor, Storage Admin
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 einfach 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 -
Google Cloud Projekt erstellen oder auswählen
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- 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 „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
Erstellen Sie ein Projekt in Google Cloud :
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 Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Managed Kafka API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. 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 -
Google Cloud Projekt erstellen oder auswählen
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- 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 „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
Erstellen Sie ein Projekt in Google Cloud :
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 Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Managed Kafka API, falls sie noch nicht aktiviert ist:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. 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/storage.admingcloud 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.
Cloud Storage-Bucket erstellen
In diesem Schritt erstellen Sie einen Cloud Storage-Bucket. In diesem Bucket werden die Daten gespeichert, die der Cloud Storage-Senken-Connector aus Kafka liest.
Console
Rufen Sie die Seite Cloud Storage > Buckets auf.
Klicken Sie auf Erstellen.
Geben Sie auf der Seite Bucket erstellen einen Namen ein, der den Anforderungen für Bucket-Namen entspricht. Cloud Storage-Bucket-Namen müssen global eindeutig sein.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud storage buckets create aus, um einen Cloud Storage-Bucket zu erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Ersetzen Sie Folgendes:
BUCKET_NAME: Ein Name für Ihren Cloud Storage-Bucket, der den Anforderungen für Bucket-Namen entspricht. Cloud Storage-Bucket-Namen müssen global einmalig sein.
BUCKET_LOCATION: der Speicherort für den Bucket. Beispiel:
US.
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 Connectors, ein Cloud Storage-Senken-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 im 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 für Netzwerk das VPC-Netzwerk aus.
- Wählen Sie für Subnetz das 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 Clustererstellungsvorgang ü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 unter 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 das Erstellen des Clusters abgeschlossen ist, 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 habenKAFKA_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 IAM-Rolle (Identity and Access Management) Storage Object Creator zu. Mit dieser Rolle kann der Connector Dateien in Cloud Storage schreiben.
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 das Managed Kafka-Dienstkonto und klicken Sie auf Hauptkonto bearbeiten.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie die Rolle Storage-Objekt-Ersteller aus.
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 eine IAM-Rolle zuzuweisen.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
--role=roles/storage.objectCreator
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.PROJECT_NUMBER: Ihre Projektnummer
Ihre Projektnummer finden Sie mit dem Befehl gcloud projects describe.
Cloud Storage-Senken-Connector erstellen
In diesem Schritt erstellen Sie einen Cloud Storage-Senken-Connector. Dieser Connector liest Nachrichten aus einem oder mehreren Kafka-Themen und schreibt sie in Cloud Storage.
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
Cloud Storage Sourceaus.Wählen Sie unter Themen das zuvor erstellte Kafka-Thema aus und klicken Sie auf OK.
Klicken Sie unter GCS-Bucket auf Durchsuchen.
Wählen Sie den zuvor erstellten Cloud Storage-Bucket aus und klicken Sie auf Auswählen.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud managed-kafka connectors create aus, um einen Cloud Storage-Senken-Connector zu erstellen.
gcloud managed-kafka connectors create STORAGE_CONNECTOR_NAME \
--location=REGION \
--connect-cluster=CONNECT_CLUSTER \
--configs=connector.class=io.aiven.kafka.connect.gcs.GcsSinkConnector,\
file.name.prefix=,\
format.output.type=json,\
gcs.bucket.name=BUCKET_NAME,\
gcs.credentials.default=true,\
key.converter=org.apache.kafka.connect.storage.StringConverter,\
tasks.max=3,\
topics=KAFKA_TOPIC_NAME,\
value.converter=org.apache.kafka.connect.json.JsonConverter,\
value.converter.schemas.enable=false
Ersetzen Sie Folgendes:
STORAGE_CONNECTOR_NAME: ein Name für den Connector, z. B.storage-sink-connectorCONNECT_CLUSTER: der Name Ihres Connect-ClustersREGION: die Region, in der Sie den Connect-Cluster erstellt habenPROJECT_ID: Ihre Projekt-ID.BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets.KAFKA_TOPIC_NAME: Der Name Ihres Kafka-Themas
Ergebnisse ansehen
Senden Sie Nachrichten an das Kafka-Thema, um die Ergebnisse zu sehen. Es gibt verschiedene Möglichkeiten, Nachrichten an Managed Service for Apache Kafka zu senden, darunter:
- Kafka-Befehlszeilentools verwenden
- Java-Producer verwenden:
- Python-Producer verwenden
- Nachrichten mit Kafka Connect aus Pub/Sub streamen
Der Senken-Connector von Cloud Storage liest die Kafka-Nachrichten und schreibt sie in Dateien in Cloud Storage. Es kann einige Minuten dauern, bis die erste Datei geschrieben wird.
So rufen Sie die Ausgabedateien auf:
Console
- Rufen Sie die Seite Cloud Storage > Buckets auf.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie zuvor erstellt haben.
Wenn der Cloud Storage-Senken-Connector Dateien erfolgreich geschrieben hat, werden sie auf der Seite Bucket-Details aufgeführt. Wählen Sie eine oder mehrere Dateien aus.
Klicken Sie auf Herunterladen, um die ausgewählten Dateien herunterzuladen.
gcloud
Führen Sie den Befehl gcloud storage ls aus, um die Ausgabedateien aufzulisten:
gcloud storage ls gs://BUCKET_NAME
Führen Sie den Befehl gcloud storage cp aus, um die Dateien herunterzuladen.
gcloud storage cp --recursive gs://BUCKET_NAME .
Ersetzen Sie BUCKET_NAME dabei durch den Namen des Cloud Storage-Buckets.
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 den Cloud Storage-Bucket.
Rufen Sie die Seite Cloud Storage > Buckets auf.
Wählen Sie den Bucket 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 den Befehl
gcloud storage rm, um den Cloud Storage-Bucket und seine Objekte zu löschen.gcloud storage rm gs://BUCKET_NAME --recursiveVerwenden 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