Topik impor Amazon Kinesis Data Streams memungkinkan Anda terus menyerap data dari Amazon Kinesis Data Streams sebagai sumber eksternal dan ke Pub/Sub. Kemudian, Anda dapat melakukan streaming data ke salah satu tujuan yang didukung Pub/Sub.
Dokumen ini menunjukkan cara membuat dan mengelola topik impor Amazon Kinesis Data Streams. Untuk membuat topik standar, lihat Membuat topik standar.
Sebelum memulai
Ketahui lebih lanjut proses publikasi Pub/Sub.
Konfigurasikan peran dan izin yang diperlukan untuk mengelola topik impor Amazon Kinesis Data Streams termasuk hal berikut:
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 guna membuat dan mengelola topik impor Amazon Kinesis Data Streams,
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 ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat dan mengelola topik impor Amazon Kinesis Data Streams. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola topik impor Amazon Kinesis Data Streams:
-
Buat topik impor:
pubsub.topics.create
-
Menghapus topik impor:
pubsub.topics.delete
-
Mendapatkan topik impor:
pubsub.topics.get
-
Cantumkan topik impor:
pubsub.topics.list
-
Memublikasikan ke topik impor:
pubsub.topics.publish
-
Memperbarui topik impor:
pubsub.topics.update
-
Dapatkan kebijakan IAM untuk topik impor:
pubsub.topics.getIamPolicy
-
Konfigurasikan kebijakan IAM untuk topik impor:
pubsub.topics.setIamPolicy
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Anda dapat mengonfigurasi kontrol akses di tingkat project dan tingkat resource individual.
Menyiapkan identitas gabungan untuk mengakses Kinesis Data Streams
Workload Identity Federation memungkinkan layanan Google Cloud mengakses beban kerja yang berjalan di luar Google Cloud. Dengan federasi identitas, Anda tidak perlu memelihara atau meneruskan kredensial ke Google Cloud untuk mengakses resource di cloud lain. Sebagai gantinya, Anda dapat menggunakan identitas workload 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 ada, buka Mencatat ID unik akun layanan untuk langkah berikutnya.
Untuk topik impor Amazon Kinesis Data Streams, Pub/Sub menggunakan akun layanan sebagai identitas untuk mengakses resource dari AWS.
Untuk informasi selengkapnya tentang cara membuat akun layanan, termasuk prasyarat, peran dan izin yang diperlukan, serta panduan penamaan, lihat Membuat akun layanan. Setelah membuat akun layanan, Anda mungkin perlu menunggu selama 60 detik atau lebih sebelum menggunakan akun layanan. Perilaku ini terjadi karena operasi baca pada akhirnya konsisten; perlu waktu hingga 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 Anda buat atau yang ingin Anda gunakan.
Dari halaman Detail akun layanan, catat nomor ID Unik.
Anda memerlukan ID ini sebagai bagian dari bagian Membuat peran di AWS menggunakan kebijakan kepercayaan kustom.
Menambahkan peran pembuat token akun layanan ke akun layanan Pub/Sub
Peran pembuat token akun layanan (roles/iam.serviceAccountTokenCreator
)
memungkinkan akun utama membuat kredensial jangka pendek
untuk akun layanan. Token atau kredensial ini digunakan untuk meniru identitas akun layanan.
Untuk informasi selengkapnya tentang peniruan akun layanan, lihat Peniruan akun layanan.
Anda juga dapat menambahkan peran penayang Pub/Sub (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 Principal.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih Peran pembuat token akun layanan (
roles/iam.serviceAccountTokenCreator
).Klik Simpan.
Membuat kebijakan di AWS
Anda memerlukan kebijakan di AWS untuk mengizinkan Pub/Sub mengautentikasi dengan AWS sehingga Pub/Sub dapat menyerap data dari aliran data AWS Kinesis. Sebelum membuat kebijakan AWS, buat streaming data Kinesis dan konsumen terdaftar di dalamnya. Sebaiknya lakukan praktek ini agar Anda dapat membatasi izin ke aliran data tertentu.
Untuk informasi selengkapnya tentang cara membuat aliran data AWS Kinesis, lihat Aliran data Kinesis.
Untuk informasi selengkapnya tentang AWS Kinesis data stream API yang digunakan untuk mendaftarkan konsumen, lihat RegisterStreamConsumer.
Untuk mengetahui metode dan informasi selengkapnya tentang cara membuat kebijakan di AWS, lihat Membuat kebijakan IAM.
Untuk membuat kebijakan di AWS, lakukan langkah-langkah berikut:
Login ke AWS Management Console, lalu buka konsol IAM.
Di panel navigasi konsol untuk IAM, klik Access Management > Policies.
Klik Create policy.
Untuk Pilih layanan, pilih Kinesis.
Untuk action allowed, pilih hal berikut:
List > ListShards.
Tindakan ini memberikan izin untuk mencantumkan shard dalam aliran 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 aliran data 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 data.
Klik Tambahkan izin lainnya.
Untuk Select a service, masukkan dan pilih STS.
Untuk action allowed, pilih Write > AssumeRoleWithWebIdentity.
Tindakan ini memberikan izin untuk mendapatkan kumpulan kredensial keamanan sementara untuk Pub/Sub agar dapat melakukan autentikasi ke aliran data Kinesis menggunakan federasi identitas.
Klik Berikutnya.
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 mengautentikasi ke AWS untuk menyerap data dari Kinesis Data Streams.
Untuk membuat peran menggunakan kebijakan kepercayaan kustom, lakukan langkah-langkah berikut:
Login ke AWS Management Console, lalu buka konsol IAM.
Di panel navigasi konsol untuk IAM, klik Roles.
Klik Buat peran.
Untuk Pilih entitas tepercaya, pilih Kebijakan kepercayaan kustom.
Di bagian Custom trust policy, masukkan atau tempelkan kode 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 Berikutnya.
Untuk Tambahkan izin, telusuri dan pilih kebijakan kustom yang baru saja Anda buat.
Klik Berikutnya.
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 ke topik impor dari AWS Kinesis Data Streams.
Untuk mengaktifkan publikasi dari semua topik dalam project, lihat Mengaktifkan publikasi dari semua topik. Gunakan metode ini jika Anda belum membuat topik impor AWS Kinesis Data Streams.
Untuk mengaktifkan publikasi dari topik tertentu (direkomendasikan), lihat Mengaktifkan publikasi dari satu topik. Gunakan metode ini hanya jika topik impor AWS Kinesis Data Streams sudah ada.
Mengaktifkan publikasi dari semua topik
Gunakan metode ini jika Anda belum membuat topik impor AWS Kinesis Data Streams.
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 Principal.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih Pub/Sub publisher role (
roles/pubsub.publisher
).Klik Simpan.
Mengaktifkan publikasi dari satu topik
Gunakan metode ini hanya jika topik impor AWS Kinesis Data Streams sudah ada.
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.
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 topic ID topik impor Amazon Kinesis Data Streams.
PROJECT_NUMBER adalah nomor project. Untuk melihat nomor project, lihat Mengidentifikasi project.
Menambahkan peran pengguna akun layanan ke akun layanan
Peran Pengguna Akun Layanan (roles/iam.serviceAccountUser
) mencakup izin iam.serviceAccounts.actAs
yang memungkinkan akun utama melampirkan akun layanan ke setelan penyerapan topik impor Amazon Kinesis Data Streams dan menggunakan akun layanan tersebut untuk identitas gabungan.
Lakukan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman IAM.
Untuk akun utama yang mengeluarkan panggilan pembuatan atau pembaruan topik, klik tombol Edit Principal.
Jika diperlukan, klik Tambahkan peran lain.
Telusuri dan pilih Peran pengguna akun layanan (
roles/iam.serviceAccountUser
).Klik Simpan.
Membuat topik impor Amazon Kinesis Data Streams
Untuk mengetahui properti yang terkait dengan topik lebih lanjut, lihat Properti topik.
Pastikan Anda telah menyelesaikan prosedur berikut:
Membuat topik dan langganan secara terpisah, meskipun dilakukan secara berurutan, dapat menyebabkan hilangnya data. Ada periode singkat saat topik tersedia tanpa langganan. Jika ada data yang dikirim ke topik selama waktu ini, data tersebut akan hilang. Dengan membuat topik terlebih dahulu, membuat langganan, lalu mengonversi topik ke topik impor, Anda menjamin bahwa tidak ada pesan yang terlewat selama proses impor.
Untuk membuat topik impor Amazon Kinesis Data Streams, ikuti langkah-langkah berikut:
Konsol
-
Di konsol Google Cloud, buka halaman Topics.
-
Klik Create topic.
-
Di kolom Topic ID, masukkan ID untuk topik impor Amazon Kinesis Data Streams Anda.
Untuk informasi selengkapnya tentang penamaan topik, lihat panduan penamaan.
-
Pilih Tambahkan langganan default.
-
Pilih Aktifkan penyerapan.
-
Untuk sumber penyerapan, pilih Amazon Kinesis Data Streams.
-
Masukkan detail berikut:
-
ARN Aliran Data Kinesis: ARN untuk Aliran Data Kinesis yang Anda rencanakan untuk diserap ke Pub/Sub. Format ARN adalah sebagai berikut:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
ARN Konsumen Kinesis: 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 peran AWS. Format ARN peran 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
-
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.
-
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_ACCOUNT
Ganti kode berikut:
-
TOPIC_ID adalah ID topik.
-
KINESIS_STREAM_ARN adalah ARN untuk Kinesis Data Streams yang ingin 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 peran AWS. Format ARN peran 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Pub/Sub menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Pub/Sub menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C++
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C++ di panduan memulai Pub/Sub menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C++ Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengetahui informasi selengkapnya tentang ARN, lihat Amazon Resource Name (ARN) dan ID IAM.
Jika Anda mengalami masalah, lihat Memecahkan masalah topik impor Amazon Kinesis Data Streams.
Mengedit topik impor Amazon Kinesis Data Streams
Anda dapat mengedit setelan sumber data penyerapan topik impor Amazon Kinesis Data Streams. Lakukan langkah-langkah berikut:
Konsol
-
Di konsol Google Cloud, buka halaman Topics.
-
Klik topik impor Amazon Kinesis Data Streams.
-
Di halaman detail topik, klik Edit.
-
Perbarui kolom yang ingin diubah.
-
Klik Perbarui.
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.
Agar tidak kehilangan setelan untuk topik impor, pastikan untuk menyertakan semuanya setiap kali Anda memperbarui topik. Jika Anda mengabaikan sesuatu, Pub/Sub akan mereset setelan ke nilai default aslinya.
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_ACCOUNT
Ganti kode berikut:
-
TOPIC_ID adalah ID topik. Kolom ini tidak dapat diperbarui.
-
KINESIS_STREAM_ARN adalah ARN untuk Kinesis Data Streams yang ingin 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 peran AWS. Format ARN peran 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 Amazon Kinesis Data Streams
Throughput penayang untuk topik impor dibatasi 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.