Topik impor memungkinkan Anda menyerap data dari sumber eksternal ke Pub/Sub. Selanjutnya, Anda dapat mengalirkan data ke tujuan mana pun yang didukung Pub/Sub.
Pub/Sub mendukung Amazon Kinesis Data Streams sebagai sumber eksternal untuk menyerap data ke dalam topik impor.
Impor ringkasan topik
Topik impor mengaktifkan penyerapan topik sebagai properti. Tindakan ini memungkinkan impor topik menyerap data streaming. Anda dapat mengaktifkan penyerapan pada suatu topik menggunakan konsol, Google Cloud CLI, panggilan REST, atau library klien. Sebagai bagian dari pengelolaan topik impor, Google Cloud menyediakan pemantauan dan penskalaan pipeline penyerapan.
Tanpa topik impor, streaming data ke Pub/Sub dari sumber data memerlukan layanan tambahan. Layanan tambahan ini mengambil data dari sumber asli dan memublikasikannya ke Pub/Sub. Layanan tambahan dapat berupa mesin streaming seperti Apache Spark atau layanan yang ditulis khusus. Anda juga harus mengonfigurasi, men-deploy, menjalankan, menskalakan, dan memantau layanan ini.
Berikut adalah daftar informasi penting terkait topik impor:
Serupa dengan topik standar, Anda masih dapat memublikasikan ke topik impor secara manual.
Anda hanya dapat melampirkan satu sumber penyerapan ke topik impor.
Sebaiknya impor topik untuk data streaming. Jika Anda mempertimbangkan penyerapan data batch ke BigQuery dan bukan penyerapan data streaming, Anda dapat mencoba BigQuery Data Transfer Service (BQ DTS). Jika Anda ingin menyerap data ke Cloud Storage, Storage Transfer Service (STS) adalah opsi yang bagus.
Sebelum memulai
Ketahui lebih lanjut layanan Pub/Sub dan terminologinya.
Ketahui lebih lanjut tentang proses publikasi Pub/Sub.
Konfigurasikan peran dan izin yang diperlukan untuk mengelola topik impor termasuk menambahkan peran penayang Pub/Sub ke akun layanan Pub/Sub dan menambahkan peran pengguna akun layanan ke akun layanan.
Siapkan workload identity federation agar Google Cloud dapat mengakses layanan streaming eksternal.
Peran dan izin yang diperlukan untuk mengelola topik impor
Untuk mendapatkan izin yang diperlukan untuk membuat dan mengelola topik impor,
minta administrator untuk memberi Anda
peran IAM Pub/Sub Editor(roles/pubsub.editor
)
pada topik atau project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran bawaan ini berisi izin yang diperlukan untuk membuat dan mengelola topik impor. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola topik impor:
-
Buat topik impor:
pubsub.topics.create
-
Menghapus topik impor:
pubsub.topics.delete
-
Mendapatkan topik impor:
pubsub.topics.get
-
Tampilkan daftar topik impor:
pubsub.topics.list
-
Memublikasikan ke topik impor:
pubsub.topics.publish
-
Memperbarui topik impor:
pubsub.topics.update
-
Mendapatkan kebijakan IAM untuk topik impor:
pubsub.topics.getIamPolicy
-
Mengonfigurasi kebijakan IAM untuk topik impor:
pubsub.topics.setIamPolicy
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Anda dapat mengonfigurasi kontrol akses pada level project dan level resource individual.
Siapkan identitas gabungan untuk mengakses Aliran Data Kinesis
Dengan Workload Identity Federation memungkinkan layanan Google Cloud mengakses workload yang berjalan di luar Google Cloud. Dengan penggabungan identitas, Anda tidak perlu mempertahankan atau meneruskan kredensial ke Google Cloud untuk mengakses resource Anda di cloud lain. Sebagai gantinya, Anda dapat menggunakan identitas beban kerja itu sendiri untuk melakukan autentikasi ke Google Cloud dan mengakses resource.
Membuat akun layanan di Google Cloud
Ini langkah opsional. Jika sudah memiliki akun layanan, Anda dapat menggunakannya dalam prosedur ini, bukan membuat akun layanan baru. Jika Anda menggunakan akun layanan yang sudah ada, buka Merekam ID unik akun layanan untuk langkah berikutnya.
Untuk topik impor, Pub/Sub menggunakan akun layanan sebagai identitas untuk mengakses resource dari AWS.
Untuk informasi selengkapnya tentang pembuatan akun layanan, termasuk prasyarat, peran dan izin yang diperlukan, serta panduan penamaan, lihat Membuat akun layanan. Setelah membuat akun layanan, Anda mungkin harus menunggu selama 60 detik atau lebih sebelum menggunakan akun layanan. Perilaku ini terjadi karena operasi baca pada akhirnya akan konsisten; perlu waktu beberapa saat agar akun layanan baru terlihat.
Catat ID unik akun layanan
Anda memerlukan ID unik akun layanan untuk menyiapkan peran di konsol AWS.
Di konsol Google Cloud, buka halaman detail Service account.
Klik akun layanan yang baru saja dibuat atau akun yang akan digunakan.
Dari halaman Detail akun layanan, catat nomor ID Unik.
Anda akan memerlukan ID ini sebagai bagian dari bagian Create a role in AWS using a custom trust policy.
Menambahkan peran pembuat token akun layanan ke akun layanan Pub/Sub
Peran pembuat token akun layanan (roles/iam.serviceAccountTokenCreator
) memungkinkan akun utama membuat kredensial berumur pendek untuk akun layanan. Token atau kredensial ini digunakan untuk meniru
akun layanan.
Untuk informasi selengkapnya tentang peniruan akun layanan, lihat Peniruan akun layanan.
Anda juga dapat menambahkan peran Pub/Sub publisher (roles/pubsub.publisher
)
selama prosedur ini. Untuk mengetahui informasi selengkapnya tentang peran dan alasan Anda menambahkannya,
lihat Menambahkan peran penayang Pub/Sub ke akun layanan Pub/Sub.
Di konsol Google Cloud, buka halaman IAM.
Aktifkan opsi Sertakan pemberian peran yang disediakan Google.
Cari akun layanan yang memiliki format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Untuk akun layanan ini, klik tombol Edit Utama.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih Service account token creator role (
roles/iam.serviceAccountTokenCreator
).Klik Save.
Membuat kebijakan di AWS
Anda memerlukan kebijakan di AWS untuk mengizinkan Pub/Sub melakukan autentikasi dengan AWS, sehingga Pub/Sub dapat menyerap data dari aliran data AWS Kinesis. Sebelum membuat kebijakan AWS, buat aliran data Kinesis dan konsumen terdaftar di dalamnya. Kami merekomendasikan praktik ini agar Anda dapat membatasi izin ke aliran data tertentu.
Untuk mengetahui informasi selengkapnya tentang cara membuat aliran data AWS Kinesis, lihat aliran data Kinesis.
Untuk mengetahui informasi selengkapnya tentang API aliran data AWS Kinesis yang digunakan untuk mendaftarkan konsumen, lihat RegisterStreamConsumer.
Untuk metode dan informasi lainnya tentang cara membuat kebijakan di AWS, lihat Membuat kebijakan IAM.
Untuk membuat kebijakan di AWS, lakukan langkah-langkah berikut:
Login ke Konsol Pengelolaan AWS dan buka Konsol IAM.
Di panel navigasi konsol untuk IAM, klik Access Management > Policies.
Klik Create policy.
Untuk Select a service, pilih Kinesis.
Untuk tindakan yang diizinkan, pilih hal berikut:
Daftar > ListShards.
Tindakan ini memberikan izin untuk mencantumkan shard dalam sebuah aliran data dan memberikan informasi tentang setiap shard.
Baca > SubscribeToShard.
Tindakan ini memberikan izin untuk memproses shard tertentu dengan fan-out yang ditingkatkan.
Baca > DescribeStreamConsumer.
Tindakan ini memberikan izin untuk mendapatkan deskripsi konsumen streaming yang terdaftar.
Izin ini mencakup pembacaan dari streaming. Pub/Sub hanya mendukung pembacaan dari stream Kinesis dengan Enhanced Fan-Out menggunakan streaming SubscribeToShard API.
Untuk Resource, jika Anda ingin membatasi kebijakan ke aliran data atau konsumen tertentu (direkomendasikan), tentukan ARN konsumen dan ARN aliran.
Klik Tambahkan izin lainnya.
Untuk Pilih layanan, masukkan dan pilih STS.
Untuk tindakan yang diizinkan, pilih Tulis > AssumeRoleWithWebIdentity.
Tindakan ini memberikan izin untuk mendapatkan sekumpulan kredensial keamanan sementara untuk Pub/Sub guna melakukan autentikasi ke aliran data Kinesis menggunakan penggabungan identitas.
Klik Next.
Masukkan nama dan deskripsi kebijakan.
Klik Create policy.
Membuat peran di AWS menggunakan kebijakan kepercayaan kustom
Anda harus membuat peran di AWS agar Pub/Sub dapat melakukan autentikasi ke AWS untuk menyerap data dari Aliran Data Kinesis.
Untuk membuat peran menggunakan kebijakan kepercayaan kustom, lakukan langkah-langkah berikut:
Login ke Konsol Pengelolaan AWS dan buka Konsol IAM.
Di panel navigasi konsol untuk IAM, klik Roles.
Klik Buat peran.
Untuk Pilih entitas tepercaya, pilih Kebijakan kepercayaan khusus.
Di bagian Kebijakan kepercayaan kustom, masukkan atau tempel hal berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<SERVICE_ACCOUNT_UNIQUE_ID>" } } } ] }
Ganti
<SERVICE_ACCOUNT_UNIQUE_ID>
dengan ID unik akun layanan yang Anda catat di Mencatat ID unik akun layanan.Klik Next.
Untuk Add permissions, telusuri dan pilih kebijakan kustom yang baru saja Anda buat.
Klik Next.
Masukkan nama dan deskripsi peran.
Klik Buat peran.
Menambahkan peran penayang Pub/Sub ke akun layanan Pub/Sub
Anda harus menetapkan peran penayang ke akun layanan Pub/Sub agar Pub/Sub dapat memublikasikan topik impor dari Aliran Data AWS Kinesis.
Untuk mengaktifkan publikasi dari semua topik dalam sebuah project, lihat Mengaktifkan publikasi dari semua topik.
Untuk mengaktifkan publikasi dari topik tertentu (direkomendasikan), lihat Mengaktifkan publikasi dari satu topik.
Aktifkan publikasi dari semua topik
Di konsol Google Cloud, buka halaman IAM.
Aktifkan opsi Sertakan pemberian peran yang disediakan Google.
Cari akun layanan yang memiliki format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Untuk akun layanan ini, klik tombol Edit Utama.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih peran Pub/Sub publisher (
roles/pubsub.publisher
).Klik Save.
Mengaktifkan publikasi dari satu topik
Jika Anda ingin memberikan izin publikasi hanya ke topik impor tertentu, ikuti langkah-langkah berikut:
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Jalankan perintah
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"
Ganti kode berikut:
TOPIC_ID adalah ID topik untuk topik impor.
PROJECT_NUMBER adalah nomor project. Untuk melihat nomor project, lihat Mengidentifikasi project.
Menambahkan peran pengguna akun layanan ke akun layanan
Peran Service Account User (roles/iam.serviceAccountUser
) mencakup
iam.serviceAccounts.actAs
izin yang memungkinkan akun utama melampirkan
akun layanan ke setelan penyerapan topik impor dan menggunakan akun
layanan tersebut untuk identitas gabungan.
Lakukan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman IAM.
Untuk akun utama yang melakukan panggilan buat atau update topik, klik tombol Edit Principal.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih Peran pengguna akun layanan (
roles/iam.serviceAccountUser
).Klik Save.
Membuat topik impor
Untuk mengetahui lebih lanjut properti yang terkait dengan topik, lihat Properti topik.
Pastikan Anda telah menyelesaikan prosedur berikut:
Untuk membuat topik impor, ikuti langkah-langkah berikut:
Konsol
-
Di konsol Google Cloud, buka halaman Topics.
-
Klik Create topic.
-
Di kolom Topic ID, masukkan ID untuk topik impor Anda.
Untuk mengetahui informasi selengkapnya tentang penamaan topik, lihat panduan penamaan.
-
Pilih Add a default subscription.
-
Pilih Aktifkan penyerapan.
-
Untuk sumber penyerapan, pilih Amazon Kinesis Data Streams.
-
Masukkan detail berikut:
-
Kinesis Stream ARN: ARN untuk Aliran Data Kinesis yang akan Anda serap ke Pub/Sub. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
Kinesis Consumer ARN: ARN resource konsumen yang terdaftar ke AWS Kinesis Data Stream. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
AWS Role ARN: ARN dari peran AWS. Format ARN untuk peran tersebut adalah sebagai berikut:
arn:aws:iam:${Account}:role/${RoleName}
. -
Akun layanan: Akun layanan yang Anda buat di Membuat akun layanan di Google Cloud.
-
-
Klik Create topic.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Jalankan perintah
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTGanti kode berikut:
-
TOPIC_ID adalah ID topik.
-
KINESIS_STREAM_ARN adalah ARN untuk Aliran Data Kinesis yang akan Anda serap ke Pub/Sub. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN adalah ARN resource konsumen yang terdaftar ke AWS Kinesis Data Streams. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN adalah ARN dari peran AWS. Format ARN untuk peran tersebut adalah sebagai berikut:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT adalah akun layanan yang Anda buat di Membuat akun layanan di Google Cloud.
-
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C++
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C++ di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API C++ Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js (TypeScript)
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Pub/Sub menggunakan library klien. Untuk informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Node.js API.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengetahui informasi selengkapnya tentang ARN, lihat Amazon Resource Names (ARN) dan ID IAM.
Jika Anda mengalami masalah, lihat Memecahkan masalah topik impor.
Mengedit topik impor
Anda dapat mengedit setelan sumber data penyerapan topik impor. Lakukan langkah-langkah berikut:
Konsol
-
Di konsol Google Cloud, buka halaman Topics.
-
Klik impor topik.
-
Di halaman detail topik, klik Edit.
-
Perbarui kolom yang ingin Anda ubah.
-
Klik Perbarui.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Jalankan perintah
gcloud pubsub topics update
dengan semua flag yang disebutkan dalam contoh berikut:gcloud pubsub topics update TOPIC_ID
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTGanti kode berikut:
-
TOPIC_ID adalah ID topik. Kolom ini tidak dapat diperbarui.
-
KINESIS_STREAM_ARN adalah ARN untuk Aliran Data Kinesis yang akan Anda serap ke Pub/Sub. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN adalah ARN resource konsumen yang terdaftar ke AWS Kinesis Data Streams. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN adalah ARN dari peran AWS. Format ARN untuk peran tersebut adalah sebagai berikut:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT adalah akun layanan yang Anda buat di Membuat akun layanan di Google Cloud.
-
Kuota dan batas untuk topik impor
Throughput penayang untuk topik impor terikat oleh kuota publikasi topik. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas Pub/Sub.
Langkah selanjutnya
Pilih jenis langganan untuk topik Anda.
Pelajari cara memublikasikan pesan ke topik.
Buat atau ubah topik dengan gcloud CLI, REST API, atau Library klien.