Dalam Pub/Sub, topik adalah resource bernama yang mewakili feed pesan. Anda harus membuat topik sebelum dapat memublikasikan atau berlangganan ke topik tersebut. Pub/Sub mendukung dua jenis topik: topik standar dan topik impor.
Dokumen ini menjelaskan cara membuat topik standar Pub/Sub. Jika Anda ingin mempelajari lebih lanjut topik impor dan cara membuatnya, lihat Tentang topik impor.
Untuk membuat topik, Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, library klien, atau Pub/Sub API.
Sebelum memulai
Pelajari layanan Pub/Sub dan terminologinya.
Pelajari proses publikasi.
Peran dan izin yang diperlukan untuk mengelola topik
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola topik,
minta administrator untuk memberi Anda
peran IAM Pub/Sub Editor(roles/pubsub.editor
)
di 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. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola topik:
-
Buat topik:
pubsub.topics.create
-
Menghapus topik:
pubsub.topics.delete
-
Melepaskan langganan dari topik:
pubsub.topics.detachSubscription
-
Mendapatkan topik:
pubsub.topics.get
-
Cantumkan topik:
pubsub.topics.list
-
Memublikasikan ke topik:
pubsub.topics.publish
-
Memperbarui topik:
pubsub.topics.update
-
Dapatkan kebijakan IAM untuk topik:
pubsub.topics.getIamPolicy
-
Konfigurasikan kebijakan IAM untuk topik:
pubsub.topics.setIamPolicy
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Anda dapat mengonfigurasi kontrol akses di level project dan di level resource individual. Anda dapat membuat langganan di satu project dan melampirkannya ke topik yang berada di project lain. Pastikan Anda memiliki izin yang diperlukan untuk setiap project.
Properti topik
Saat membuat atau memperbarui topik, Anda harus menentukan propertinya.
Tambahkan langganan default
Menambahkan langganan default ke topik Pub/Sub. Anda dapat membuat langganan lain untuk topik setelah topik dibuat. Langganan default memiliki properti berikut:
- ID Langganan
-sub
- Jenis pengiriman pull
- Durasi retensi pesan selama tujuh hari
- Berakhir setelah tidak aktif selama 31 hari
- Batas waktu konfirmasi 10 detik
- Kebijakan percobaan ulang langsung
Menggunakan skema
Skema adalah format yang harus diikuti kolom data pesan. Skema adalah kontrak antara penayang dan pelanggan yang diberlakukan oleh Pub/Sub. Skema topik membantu menstandarkan jenis pesan dan izin agar dapat digunakan oleh berbagai tim di organisasi Anda. Pub/Sub membuat otoritas pusat untuk jenis dan izin pesan. Untuk membuat topik dengan skema, lihat Ringkasan skema.
Mengaktifkan penyerapan
Dengan mengaktifkan properti ini, Anda dapat menyerap data streaming dari sumber eksternal ke dalam topik sehingga Anda dapat menggunakan fitur Google Cloud. Untuk membuat topik impor untuk proses transfer, lihat hal berikut:
Mengaktifkan retensi pesan
Menentukan berapa lama topik Pub/Sub menyimpan pesan setelah publikasi. Setelah durasi retensi pesan berakhir, Pub/Sub dapat menghapus pesan, terlepas dari status konfirmasinya. Biaya penyimpanan pesan dikenakan untuk menyimpan semua pesan yang dipublikasikan ke topik
- Default = Tidak diaktifkan
- Nilai minimum = 10 menit
- Nilai maksimum = 31 hari
Mengekspor data pesan ke BigQuery
Dengan mengaktifkan properti ini, Anda dapat membuat langganan BigQuery yang menulis pesan ke tabel BigQuery yang ada saat pesan diterima. Anda tidak perlu mengonfigurasi klien pelanggan terpisah. Untuk mengetahui informasi selengkapnya tentang langganan BigQuery, lihat Langganan BigQuery.
Mengekspor data pesan ke Cloud Storage
Dengan mengaktifkan properti ini, Anda dapat membuat langganan Cloud Storage yang menulis pesan ke tabel Cloud Storage yang sudah ada saat pesan diterima. Anda tidak perlu mengonfigurasi klien pelanggan terpisah. Untuk mengetahui informasi selengkapnya tentang langganan Cloud Storage, lihat Langganan Cloud Storage.
Google-managed encryption key
Menentukan bahwa topik dienkripsi menggunakan kunci enkripsi yang dikelola Google. Pub/Sub mengenkripsi pesan dengan kunci yang dikelola Google secara default, sehingga memilih opsi ini akan mempertahankan perilaku default. Google menangani pengelolaan dan rotasi kunci secara otomatis, sehingga memastikan pesan Anda selalu dilindungi dengan enkripsi terkuat yang tersedia. Opsi ini tidak memerlukan konfigurasi lebih lanjut. Untuk informasi selengkapnya tentang kunci enkripsi yang dikelola Google, lihat Enkripsi default dengan kunci milik dan dikelola Google.
Kunci Cloud KMS
Menentukan apakah topik dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK). Pub/Sub mengenkripsi pesan dengan kunci milik dan dikelola Google secara default. Jika Anda menentukan opsi ini, Pub/Sub akan menggunakan pola enkripsi amplop dengan CMEK. Dalam pendekatan ini, Cloud KMS tidak mengenkripsi pesan. Sebagai gantinya, Cloud KMS mengenkripsi Kunci Enkripsi Data (DEK) yang dibuat oleh Pub/Sub untuk setiap topik. Pub/Sub mengenkripsi pesan menggunakan DEK terbaru yang dibuat untuk topik. Pub/Sub mendekode pesan sesaat sebelum dikirim ke pelanggan. Untuk mengetahui informasi selengkapnya tentang cara membuat kunci, lihat Mengonfigurasi enkripsi pesan.
Membuat topik
Buat topik sebelum dapat memublikasikan atau berlangganan ke topik tersebut.
Konsol
Untuk membuat topik, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Topics Pub/Sub.
Klik Create topic.
Di kolom ID Topik, masukkan ID untuk topik Anda. Untuk informasi selengkapnya tentang penamaan topik, lihat panduan penamaan.
Pertahankan opsi Tambahkan langganan default.
Opsional. Jangan pilih opsi lainnya.
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.
-
Untuk membuat topik, jalankan perintah
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
REST
Untuk membuat topik, gunakan metode
projects.topics.create
:
Permintaan harus diautentikasi dengan token akses di header Authorization
. Untuk mendapatkan token akses untuk Kredensial Default Aplikasi saat ini: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Dengan keterangan:
Respons:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
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.
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.
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
Node.js
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai Pub/Sub menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP 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.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di panduan memulai Pub/Sub menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Pub/Sub.
Untuk melakukan autentikasi ke Pub/Sub, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Batasan kebijakan organisasi
Kebijakan organisasi dapat membatasi pembuatan topik, misalnya, kebijakan dapat membatasi penyimpanan pesan di region Compute Engine. Untuk menghindari error pembuatan topik, periksa dan perbarui kebijakan organisasi, sesuai kebutuhan, sebelum membuat topik.
Jika project Anda baru dibuat, tunggu beberapa menit hingga kebijakan organisasi diinisialisasi sebelum membuat topik.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi kebijakan penyimpanan pesan.
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.