Dokumen ini menunjukkan cara memublikasikan pesan ke topik dengan skema.
Sebelum memulai
Sebelum mengonfigurasi alur kerja publikasi, pastikan Anda telah menyelesaikan tugas berikut:
- Pahami cara kerja skema Pub/Sub.
- Mengaitkan skema dengan topik.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna memublikasikan pesan ke topik, minta administrator untuk memberi Anda peran IAM Pub/Sub Publisher (roles/pubsub.publisher) pada topik.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Anda memerlukan izin tambahan untuk membuat atau memperbarui topik dan langganan.Memublikasikan pesan dengan skema
Anda dapat memublikasikan pesan ke topik yang terkait dengan skema. Anda harus mengenkode pesan dalam skema dan format yang Anda tentukan saat Anda membuat topik. Pesan cocok dengan skema yang terkait dengan topik jika cocok dengan revisi skema dalam rentang revisi yang diizinkan. Pesan dievaluasi terhadap revisi dalam urutan dari revisi yang diizinkan paling baru hingga kecocokan ditemukan atau revisi yang diizinkan paling lama tercapai. Pub/Sub menambahkan atribut berikut ke pesan yang berhasil dipublikasikan ke topik yang terkait dengan skema:
googclient_schemaname: Nama skema yang digunakan untuk validasi.googclient_schemaencoding: Encoding pesan, baik JSON atau BINARY.googclient_schemarevisionid: ID revisi skema yang digunakan untuk mengurai dan memvalidasi pesan. Setiap revisi memiliki ID revisi unik yang terkait dengannya. ID revisi adalah UUID delapan karakter yang dibuat otomatis.
Jika pesan tidak cocok dengan revisi skema yang diizinkan oleh
topik, Pub/Sub akan menampilkan error
INVALID_ARGUMENT ke permintaan publikasi.
Pub/Sub hanya mengevaluasi pesan terhadap revisi skema pada waktu publikasi. Melakukan revisi skema baru atau mengubah skema yang terkait dengan topik setelah memublikasikan pesan tidak akan mengevaluasi ulang pesan tersebut atau mengubah salah satu atribut pesan skema terlampir.
Anda dapat memublikasikan pesan ke topik dengan skema terkait dalam project Google Cloud menggunakan Konsol Google Cloud, gcloud CLI, Pub/Sub API, atau Library Klien Cloud.
gcloud
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan prompt 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 pada sesi.
Publikasikan contoh pesan menggunakan perintah gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGEGanti kode berikut:
TOPIC_ID: Nama topik yang sudah Anda buat.
MESSAGE: Pesan yang dipublikasikan ke topik. Contoh pesan dapat berupa
{"name": "Alaska", "post_abbr": "AK"}.
C++
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C++ di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C++ Pub/Sub.
Avro ProtoC#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Pub/Sub.
Avro ProtoGo
Contoh berikut menggunakan versi utama library klien Go Pub/Sub (v2). Jika Anda masih menggunakan library v1, lihat panduan migrasi ke v2. Untuk melihat daftar contoh kode v1, lihat contoh kode yang tidak digunakan lagi.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Pub/Sub.
Avro ProtoJava
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Java API.
Avro ProtoNode.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Avro Buffering ProtokolNode.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Avro Buffering ProtokolPHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Pub/Sub.
Avro Protocol BufferPython
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API Pub/Sub.
Avro Protocol BufferRuby
Contoh berikut menggunakan library klien Pub/Sub Ruby v3. Jika Anda masih menggunakan library v2, lihat panduan migrasi ke v3. Untuk melihat daftar contoh kode Ruby v2, lihat contoh kode yang tidak digunakan lagi.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Pub/Sub.
Avro Protocol BufferLangkah berikutnya
Untuk membatasi lokasi tempat Pub/Sub menyimpan data pesan, lihat Membatasi lokasi resource Pub/Sub.
Untuk mempelajari lebih lanjut cara menerima pesan, lihat Memilih jenis langganan.