Tutorial ini menunjukkan cara menyerap pesan dari Pub/Sub ke cluster Managed Service untuk Apache Kafka menggunakan Kafka Connect.
Kafka Connect mengelola pergerakan data antara cluster Kafka dan sistem lainnya. Dalam tutorial ini, Anda akan membuat Connect cluster, dan konektor Sumber Pub/Sub. Konektor Sumber Pub/Sub membaca pesan dari topik Pub/Sub Anda dan menuliskannya ke topik Kafka.
Sebelum memulai
Konsol
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
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.-
Pastikan Anda memiliki peran berikut di project: Managed Kafka Cluster Editor, Managed Kafka Connect Cluster Editor, Managed Kafka Connector Editor, Managed Kafka Topic Editor, Pub/Sub Editor
Memeriksa peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
-
Di kolom Principal, temukan semua baris yang mengidentifikasi Anda atau grup yang Anda termasuk di dalamnya. Untuk mengetahui grup mana saja yang Anda ikuti, hubungi administrator Anda.
- Untuk semua baris yang menentukan atau menyertakan Anda, periksa kolom Peran untuk melihat apakah daftar peran menyertakan peran yang diperlukan.
Memberikan peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah alamat email untuk Akun Google.
- Klik Pilih peran, lalu telusuri peran.
- Untuk memberikan peran tambahan, klik Add another role, lalu tambahkan tiap peran tambahan.
- Klik Simpan.
-
gcloud
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Managed Kafka API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable managedkafka.googleapis.com
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Managed Kafka API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable managedkafka.googleapis.com
-
Memberikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
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
Ganti kode berikut:
PROJECT_ID: Project ID Anda.USER_IDENTIFIER: ID untuk akun pengguna Anda. Misalnya,myemail@example.com.ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
Membuat topik dan langganan Pub/Sub
Pada langkah ini, Anda akan membuat topik Pub/Sub dengan langganan.
Konsol
Buka halaman Pub/Sub > Topics.
Klik Buat topik.
Di kotak ID Topik, masukkan nama untuk topik.
Pastikan kotak centang Tambahkan langganan default dicentang.
Klik Create.
gcloud
Untuk membuat topik Pub/Sub, jalankan perintah
gcloud pubsub topics create.gcloud pubsub topics create TOPIC_IDGanti
TOPIC_IDdengan nama untuk topik Pub/Sub Anda.Untuk membuat langganan ke topik Anda, jalankan perintah
gcloud pubsub subscriptions create:gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_IDGanti
SUBSCRIPTION_IDdengan nama untuk langganan Pub/Sub Anda.
Untuk mengetahui informasi tentang cara memberi nama topik dan langganan Pub/Sub, lihat Panduan untuk memberi nama topik atau langganan.
Membuat resource Managed Service for Apache Kafka
Di bagian ini, Anda akan membuat resource Managed Service for Apache Kafka berikut:
- Cluster Kafka dengan topik.
- Cluster Connect dengan konektor Pub/Sub.
Membuat cluster Kafka
Pada langkah ini, Anda akan membuat cluster Managed Service for Apache Kafka. Pembuatan cluster dapat memakan waktu hingga 30 menit.
Konsol
- Buka halaman Managed Service for Apache Kafka > Clusters.
- Klik Create.
- Di kotak Nama cluster, masukkan nama untuk cluster.
- Dalam daftar Region, pilih lokasi untuk cluster.
-
Untuk Network configuration, konfigurasikan subnet tempat cluster dapat diakses:
- Untuk Project, pilih project Anda.
- Untuk Network, pilih jaringan VPC.
- Untuk Subnet, pilih subnet.
- Klik Done.
- Klik Create.
Setelah Anda mengklik Create, status cluster adalah Creating. Saat cluster
siap, statusnya adalah Active.
gcloud
Untuk membuat cluster Kafka, jalankan perintah
managed-kafka clusters
create.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Ganti kode berikut:
KAFKA_CLUSTER: nama untuk cluster KafkaREGION: lokasi clusterPROJECT_ID: project ID AndaSUBNET_NAME: subnet tempat Anda ingin membuat cluster, misalnyadefault
Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi Managed Service for Apache Kafka.
Perintah berjalan secara asinkron dan menampilkan ID operasi:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Untuk melacak progres operasi pembuatan, gunakan perintah
gcloud managed-kafka
operations describe:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Setelah cluster siap, output dari perintah ini akan menyertakan entri state:
ACTIVE. Untuk mengetahui informasi selengkapnya, lihat
Memantau
operasi pembuatan cluster.
Buat topik Kafka
Setelah cluster Managed Service for Apache Kafka dibuat, buat topik Kafka.
Konsol
Buka halaman Managed Service for Apache Kafka > Clusters.
Klik nama cluster.
Di halaman detail cluster, klik Create Topic.
Di kotak Nama topik, masukkan nama untuk topik.
Klik Create.
gcloud
Untuk membuat topik Kafka, jalankan perintah
managed-kafka topics create.
gcloud managed-kafka topics create KAFKA_TOPIC_NAME \
--cluster=KAFKA_CLUSTER \
--location=REGION \
--partitions=10 \
--replication-factor=3
Ganti kode berikut:
KAFKA_TOPIC_NAME: nama topik Kafka yang akan dibuatKAFKA_CLUSTER: nama cluster KafkaREGION: region tempat Anda membuat cluster Kafka
Membuat cluster Connect
Pada langkah ini, Anda akan membuat cluster Connect. Pembuatan cluster Connect dapat memerlukan waktu hingga 30 menit.
Sebelum memulai langkah ini, pastikan cluster Managed Service for Apache Kafka telah dibuat sepenuhnya.
Konsol
Buka halaman Managed Service for Apache Kafka > Connect Clusters.
Klik Create.
Untuk Connect cluster name, masukkan string. Contoh:
my-connect-cluster.Untuk Primary Kafka cluster, pilih Kafka yang Anda buat sebelumnya.
Klik Create.
Saat cluster sedang dibuat, status cluster adalah Creating. Setelah
cluster selesai dibuat, statusnya adalah Active.
gcloud
Untuk membuat cluster Connect, jalankan perintah
gcloud managed-kafka connect-clusters create.
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
Ganti kode berikut:
CONNECT_CLUSTER: nama untuk cluster ConnectREGION: region tempat Anda membuat cluster KafkaPROJECT_ID: project ID AndaSUBNET_NAME: subnet tempat Anda membuat cluster KafkaKAFKA_CLUSTER: nama cluster Kafka Anda
Perintah berjalan secara asinkron dan menampilkan ID operasi:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Untuk melacak progres operasi pembuatan, gunakan perintah
gcloud managed-kafka operations describe:
gcloud managed-kafka operations describe OPERATION_ID \
--location=REGION
Untuk mengetahui informasi selengkapnya, lihat Memantau operasi pembuatan cluster.
Memberikan peran IAM
Berikan peran Identity and Access Management (IAM) berikut ke akun layanan Managed Kafka:
- Pub/Sub Subscriber
- Pub/Sub Viewer
Peran ini memungkinkan konektor membaca pesan dari Pub/Sub.
Konsol
Di konsol Google Cloud , buka halaman IAM.
Pilih Sertakan pemberian peran yang disediakan Google.
Temukan baris Managed Kafka Service Account, lalu klik Edit principal.
Klik Tambahkan peran lain, lalu pilih peran Pub/Sub Subscriber. Ulangi langkah ini untuk peran Pub/Sub Viewer.
Klik Simpan.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Memberikan peran IAM menggunakan konsol.
gcloud
Untuk memberikan peran IAM ke akun layanan, jalankan perintah
gcloud projects add-iam-policy-binding.
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
Ganti kode berikut:
PROJECT_ID: project ID AndaPROJECT_NUMBER: nomor project Anda
Untuk menemukan nomor project Anda, gunakan perintah
gcloud projects describe.
Buat konektor Sumber Pub/Sub
Pada langkah ini, Anda akan membuat konektor Sumber Pub/Sub. Konektor ini membaca pesan dari Pub/Sub dan menuliskannya ke topik Kafka.
Konsol
Buka halaman Managed Service for Apache Kafka > Connect Clusters.
Klik nama cluster Connect.
Klik Buat konektor.
Untuk Nama konektor, masukkan string. Contoh:
pubsub-source.Di daftar Plugin konektor, pilih
Pub/Sub Source.Untuk Cloud Pub/Sub subscription, pilih Pub/Sub default yang dibuat saat Anda membuat topik Pub/Sub.
Untuk Kafka topic, pilih topik Kafka yang Anda buat sebelumnya.
Klik Create.
gcloud
Untuk membuat konektor Sumber Pub/Sub, jalankan perintah
gcloud managed-kafka connectors create.
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
Ganti kode berikut:
PUBSUB_CONNECTOR_NAME: nama untuk konektor, sepertipubsub-source-connectorCONNECT_CLUSTER: nama cluster Connect AndaREGION: region tempat Anda membuat cluster ConnectPROJECT_ID: project ID AndaKAFKA_TOPIC_NAME: nama topik Kafka AndaSUBSCRIPTION_ID: nama langganan Pub/Sub Anda
Melihat hasilnya
Untuk melihat hasilnya, publikasikan beberapa pesan ke Pub/Sub.
Konsol
Di konsol Google Cloud , buka halaman Pub/Sub > Topics.
Di daftar topik, klik nama topik Pub/Sub Anda.
Klik Pesan.
Klik Publikasikan pesan.
Untuk Number of messages, masukkan
10.Untuk Message body, masukkan
{"name": "Alice", "customer_id": 1}.Klik Publikasikan.
gcloud
Untuk memublikasikan pesan ke topik Pub/Sub Anda, gunakan perintah
gcloud pubsub topics publish.
for run in {1..10}; do
gcloud pubsub topics publish TOPIC_ID --message='{"name": "Alice", "customer_id": 1}'
done
Ganti TOPIC_ID dengan nama topik Pub/Sub Anda.
Sekarang Anda dapat menggunakan pesan dari topik Kafka. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menggunakan pesan dengan CLI.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Konsol
Hapus topik Pub/Sub.
Buka halaman Pub/Sub > Topics.
Pilih topik, lalu klik Hapus.
Hapus langganan Pub/Sub.
Buka halaman Pub/Sub > Subscriptions.
Pilih langganan yang dibuat dengan topik Anda, lalu klik Hapus.
Hapus cluster Connect.
Buka halaman Managed Service for Apache Kafka > Connect Clusters.
Pilih cluster Connect, lalu klik Delete.
Hapus cluster Kafka.
Buka halaman Managed Service for Apache Kafka > Clusters.
Pilih cluster Kafka, lalu klik Hapus.
gcloud
Untuk menghapus langganan dan topik Pub/Sub, gunakan perintah
gcloud pubsub subscriptions deletedangcloud pubsub topics delete.gcloud pubsub subscriptions delete SUBSCRIPTION_ID gcloud pubsub topics delete TOPIC_IDUntuk menghapus cluster Connect, gunakan perintah
gcloud managed-kafka connect-clusters delete.gcloud managed-kafka connect-clusters delete CONNECT_CLUSTER \ --location=REGION --asyncUntuk menghapus cluster Kafka, gunakan perintah
gcloud managed-kafka clusters delete.gcloud managed-kafka clusters delete KAFKA_CLUSTER \ --location=REGION --async
Langkah berikutnya
- Memecahkan masalah konektor Pub/Sub.
- Pelajari lebih lanjut konektor Sumber Pub/Sub.
- Pelajari lebih lanjut Kafka Connect.