Dokumen ini menunjukkan cara membuat skema untuk topik Pub/Sub.
Sebelum memulai
Sebelum membuat skema, selesaikan hal-hal berikut:
- Pelajari topik dan alur kerja publikasi.
- Pahami cara kerja skema Pub/Sub.
- Buat topik.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola skema,
minta administrator untuk memberi Anda
peran IAM Pub/Sub Editor (roles/pubsub.editor
) di 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 skema. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola skema:
-
Membuat skema:
pubsub.schemas.create
-
Lampirkan skema ke topik:
pubsub.schemas.attach
-
Meng-commit revisi skema:
pubsub.schemas.commit
-
Menghapus skema atau revisi skema:
pubsub.schemas.delete
-
Mendapatkan skema atau revisi skema:
pubsub.schemas.get
-
Mencantumkan skema:
pubsub.schemas.list
-
Mencantumkan revisi skema:
pubsub.schemas.listRevisions
-
Melakukan rollback skema:
pubsub.schemas.rollback
-
Memvalidasi pesan:
pubsub.schemas.validate
-
Dapatkan kebijakan IAM untuk skema:
pubsub.schemas.getIamPolicy
-
Konfigurasikan kebijakan IAM untuk skema:
pubsub.schemas.setIamPolicy
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Anda dapat memberikan peran dan izin kepada akun utama seperti pengguna, grup, domain, atau akun layanan. Anda dapat membuat skema di satu project dan melampirkannya ke topik yang berada di project lain. Pastikan Anda memiliki izin yang diperlukan untuk setiap project.
Membuat skema
Anda dapat membuat skema menggunakan konsol Google Cloud, gcloud CLI, Pub/Sub API, atau Library Klien Cloud.
Sebelum membuat skema, tinjau informasi penting tentang skema ini.
Konsol
Untuk membuat skema, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Pub/Sub schemas.
Klik Buat skema.
Di kolom Schema ID, masukkan ID untuk skema Anda.
Untuk panduan dalam memberi nama skema, lihat Panduan untuk memberi nama topik, langganan, atau snapshot.
Untuk Schema type, pilih Avro atau Protocol Buffer.
Pelajari jenis skema lebih lanjut.
Di kolom Schema definition, masukkan definisi Avro atau Protocol Buffer untuk skema Anda.
Misalnya, berikut adalah contoh skema di Avro.
{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false } ] }
Opsional: Klik Validasi definisi untuk memeriksa apakah definisi skema sudah benar.
Pemeriksaan validasi tidak memeriksa kompatibilitas skema dengan pesan yang akan dipublikasikan. Uji pesan di langkah berikutnya.
Opsional: Anda dapat menguji apakah pesan dengan skema yang benar dipublikasikan.
Klik Pesan pengujian.
Di jendela Pesan pengujian, pilih jenis Encoding pesan.
Di Isi pesan, masukkan pesan pengujian.
Klik Uji.
Misalnya, berikut adalah contoh pesan untuk skema pengujian. Dalam contoh ini, pilih Message encoding sebagai
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "InStock":true}
Keluar dari halaman pesan pengujian.
Klik Buat untuk menyimpan skema.
gcloud
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Dengan keterangan:
- SCHEMA_TYPE adalah
avro
atauprotocol-buffer
. - SCHEMA_DEFINITION adalah
string
yang berisi definisi skema, yang diformat sesuai dengan jenis skema yang dipilih.
Anda juga dapat menentukan definisi skema dalam file:
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Dengan keterangan:
- SCHEMA_TYPE adalah
avro
atauprotocol-buffer
. - SCHEMA_DEFINITION_FILE adalah
string
yang berisi jalur ke file dengan definisi skema, yang diformat sesuai dengan jenis skema yang dipilih.
REST
Untuk membuat skema, kirim permintaan POST seperti berikut:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Tentukan kolom berikut dalam isi permintaan:
{ "definition": SCHEMA_DEFINITION "type": SCHEMA_TYPE }
Dengan keterangan:
- SCHEMA_TYPE adalah
avro
atauprotocol-buffer
. - SCHEMA_DEFINITION adalah string yang berisi definisi skema, yang diformat sesuai dengan jenis skema yang dipilih.
Isi respons harus berisi representasi JSON dari resource skema. Contoh:
{ "name": SCHEMA_NAME, "type": SCHEMA_TYPE, "definition": SCHEMA_DEFINITION "revisionId": REVISION_ID "revisionCreateTime": REVISION_CREATE_TIME }
Dengan keterangan:
- REVISION_ID adalah ID yang dibuat server untuk revisi.
- REVISION_CREATE_TIME adalah stempel waktu ISO 8601 saat revisi dibuat.
C++
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C++ di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub C++ API.
Avro
Proto
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub C# API.
Avro
Proto
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Avro
Proto
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Avro
Proto
Node.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
Proto
Node.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
Proto
PHP
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
Proto
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Avro
Proto
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Avro
Proto
Setelah skema dibuat, Anda dapat melihat detail skema di halaman Skema.
Anda dapat mengaitkan skema dengan topik.