Dokumen ini menunjukkan cara melakukan revisi skema untuk topik Pub/Sub.
Sebelum memulai
- Pahami cara kerja skema Pub/Sub.
- Buat skema.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan guna melakukan revisi skema 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 melakukan revisi skema dan mengelola skema. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melakukan revisi skema 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.
Merevisi skema
Anda dapat melakukan revisi skema menggunakan Konsol Google Cloud, gcloud CLI, Pub/Sub API, atau Library Klien Cloud.
Berikut adalah beberapa panduan untuk melakukan revisi skema:
Anda dapat merevisi skema dalam batasan tertentu:
Untuk skema Buffer Protokol, Anda dapat menambahkan atau menghapus kolom opsional. Anda tidak dapat menambahkan atau menghapus kolom lain. Anda juga tidak dapat mengedit kolom yang ada.
Untuk skema Avro, lihat dokumentasi Avro untuk mengetahui aturan tentang resolusi skema. Revisi baru harus mengikuti aturan seolah-olah skema pembaca dan skema penulis.
Skema dapat memiliki maksimum 20 revisi sekaligus. Jika Anda melebihi batas, hapus revisi skema sebelum membuat revisi lain.
Setiap revisi memiliki ID revisi unik yang terkait dengannya. ID revisi adalah UUID delapan karakter yang dibuat otomatis.
Saat Anda memperbarui rentang revisi atau revisi skema yang digunakan untuk validasi topik, mungkin perlu waktu beberapa menit agar perubahan diterapkan.
Konsol
Untuk membuat revisi skema, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Pub/Sub schemas.
Klik ID Skema dari skema yang ada.
Halaman Detail skema untuk skema akan terbuka.
Klik Buat revisi.
Halaman Buat revisi skema akan terbuka.
Lakukan perubahan sesuai kebutuhan.
Misalnya, untuk contoh skema di Avro yang Anda buat di Membuat skema, Anda dapat menambahkan kolom opsional tambahan yang disebut
Price
sebagai berikut:{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false }, { "name": "Price", "type": "double", "default": "0.0" } ] }
Klik Validasi definisi untuk memeriksa apakah definisi skema sudah benar.
Anda juga dapat memvalidasi pesan untuk skema.
Klik Pesan pengujian untuk menguji contoh pesan.
Di jendela Pesan pengujian, pilih jenis Encoding pesan.
Di Isi pesan, masukkan pesan pengujian.
Misalnya, berikut adalah contoh pesan untuk skema pengujian. Dalam contoh ini, pilih Message encoding sebagai
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "Price":12, "InStock":true}
Klik Uji.
Klik Commit untuk menyimpan skema.
gcloud
gcloud pubsub schemas commit 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 commit 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 melakukan revisi skema, kirim permintaan POST seperti berikut:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:commit 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 "name": SCHEMA_NAME }
Dengan keterangan:
- SCHEMA_TYPE adalah
AVRO
atauPROTOCOL_BUFFER
. - SCHEMA_DEFINITION adalah string yang berisi definisi skema, yang diformat sesuai dengan jenis skema yang dipilih.
- SCHEMA_NAME adalah nama skema yang ada.
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.
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
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
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
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
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
Setelah melakukan revisi skema, Anda dapat melihat detail revisi baru di halaman Skema.