Dokumen ini menjelaskan cara menghapus subjek dari registry skema. Ada dua cara untuk menghapus subjek:
Hapus sementara. Menandai subjek sebagai dihapus, tetapi informasinya dipertahankan dan dapat dipulihkan. Semua versi untuk subjek juga dihapus sementara.
Hapus permanen. Menghapus subjek dan data terkaitnya secara permanen.
Anda juga dapat menghapus versi skema tertentu dari subjek. Untuk mengetahui informasi selengkapnya, lihat Menghapus versi subjek skema.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menghapus subjek, minta administrator untuk memberi Anda peran IAM Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) pada subjek 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 menghapus subjek. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menghapus subjek:
-
Berikan izin berikut pada subjek yang akan dihapus:
managedkafka.subjects.delete -
Jika menghapus di konsol, berikan izin berikut untuk melihat subjek:
managedkafka.subjects.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Peran Managed Kafka Schema Registry Admin
(roles/managedkafka.schemaRegistryAdmin) juga memungkinkan Anda
menghapus subjek.
Untuk mengetahui informasi selengkapnya tentang peran bawaan, lihat Peran bawaan Managed Service for Apache Kafka.
Menghapus subjek secara sementara
Pastikan kondisi berikut terpenuhi:
Subjek yang akan Anda hapus tidak dirujuk oleh skema lain. Permintaan penghapusan akan gagal jika ada versi dalam subjek yang dirujuk oleh skema lain.
Registry skema tempat subjek berada atau subjek itu sendiri tidak boleh dalam mode
Read-only.
Untuk menghapus sementara subjek, ikuti langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman Schema registries.
Klik nama registry skema yang berisi subjek yang akan dihapus.
Di bagian Subjek dalam registry skema ini, klik nama subjek.
Di halaman Detail subjek, klik Hapus.
Pilih Hapus Sementara.
Pada dialog Hapus subjek skema, ketik
deletepada kolom.Klik Hapus. Tindakan ini akan menghapus sementara subjek sebelum menghapusnya secara permanen.
REST
Permintaan harus diautentikasi dengan token akses di header Authorization. Untuk mendapatkan token akses bagi Kredensial Default Aplikasi saat ini:
gcloud auth application-default print-access-token.
Untuk menghapus sementara subjek menggunakan REST API, buat permintaan DELETE ke URI yang sesuai menggunakan metode projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Untuk menghapus sementara subjek dalam konteks tertentu menggunakan REST API,
buat permintaan DELETE ke URI yang sesuai menggunakan metode
projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Ganti kode berikut:
- PROJECT_ID (wajib): project ID Google Cloud Anda.
- LOCATION (wajib): Google Cloud region tempat registry skema berada.
- REGISTRY_ID (wajib): ID registry skema Anda.
- CONTEXT_ID (opsional): ID atau nama konteks, jika menghapus subjek dalam konteks tertentu.
- SUBJECT_ID (opsional): ID atau nama subjek yang ingin Anda hapus.
Misalnya, untuk menghapus sementara orders-topic-value dari registry skema
test_registry di project test-gcp-project dan lokasi us-central1,
buat permintaan berikut:
DELETE https://managedkafka.googleapis.com/v1/projects/test-gcp-project/locations/us-central1/schemaRegistries/test_registry/subjects/orders-topic-value
Authorization: Bearer $(gcloud auth application-default print-access-token)
Jika permintaan berhasil, API akan menampilkan kode status 200 OK. Isi
respons berisi array JSON dari nomor versi skema
yang dimiliki subjek yang dihapus.
Menghapus subjek secara permanen
Menghapus subjek secara permanen tidak dapat diurungkan dan juga akan menghapus semua versi skema terkait.
Pastikan kondisi berikut terpenuhi:
Subjek yang akan Anda hapus tidak dirujuk oleh skema lain. Permintaan penghapusan akan gagal jika ada versi dalam subjek yang dirujuk oleh skema lain.
Registry skema tempat subjek berada atau subjek itu sendiri tidak boleh dalam mode
Read-only.Cadangkan informasi skema yang diperlukan sebelum melanjutkan penghapusan.
Tidak ada produsen atau konsumen aktif yang boleh mengandalkan skema dalam subjek ini, karena menghapusnya dapat menyebabkan gangguan.
Konsol
Di konsol Google Cloud , buka halaman Schema registries.
Klik nama registry skema yang berisi subjek yang akan dihapus.
Di bagian Subjek dalam registry skema ini, klik nama subjek.
Di halaman Detail subjek, klik Hapus.
Pilih Hapus Permanen.
Pada dialog Hapus subjek skema, ketik
deletepada kolom.Klik Hapus. Tindakan ini akan menghapus sementara subjek sebelum menghapusnya secara permanen.
REST
Untuk menghapus subjek secara permanen menggunakan REST API, Anda harus menghapus sementara subjek tersebut terlebih dahulu. Setelah dihapus sementara, Anda dapat melanjutkan penghapusan permanen.
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.
Untuk menghapus subjek secara permanen menggunakan REST API, buat permintaan DELETE ke URI yang sesuai, termasuk parameter kueri permanent=true dan menggunakan metode projects.locations.schemaRegistries.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Untuk menghapus permanen subjek dalam konteks tertentu menggunakan REST API, buat
permintaan DELETE ke URI yang sesuai, termasuk parameter kueri permanent=true
dan menggunakan
metode projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Ganti kode berikut:
- PROJECT_ID (wajib): project ID Google Cloud Anda.
- LOCATION (wajib): Google Cloud region tempat schema registry berada.
- REGISTRY_ID (wajib): ID registry skema Anda.
- CONTEXT_ID (opsional): ID konteks, jika menghapus subjek dalam konteks tertentu.
- SUBJECT_ID (opsional): ID atau nama subjek yang ingin Anda hapus.
Misalnya, untuk menghapus secara permanen subjek orders-topic-value yang sebelumnya dihapus sementara
dari registry skema test_registry di project
test-gcp-project dan lokasi us-central1, buat permintaan berikut:
DELETE https://managedkafka.googleapis.com/v1/projects/test-gcp-project/locations/us-central1/schemaRegistries/test_registry/subjects/orders-topic-value?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Jika permintaan berhasil, API akan menampilkan kode status 200 OK. Isi
respons berisi array JSON dari nomor versi skema yang
dimiliki subjek yang dihapus.
Untuk informasi selengkapnya, lihat
projects.locations.schemaRegistries.contexts.subjects.delete.
Memulihkan subjek yang dihapus sementara
Untuk memulihkan subjek yang dihapus sementara, lakukan langkah-langkah berikut.
Konsol
Di konsol Google Cloud , buka halaman Schema registries.
Klik nama registry skema yang berisi subjek yang dihapus sementara.
Untuk Filter, klik Batal untuk menghapus filter Dihapus sementara: Tidak.
Klik nama subjek yang akan dipulihkan.
Di halaman Subject details, klik Create version to restore.
Untuk Schema type, pilih Avro atau Protocol Buffer.
Di kolom Definisi skema, masukkan definisi skema. Jangan sertakan informasi sensitif seperti informasi identitas pribadi (PII) atau data keamanan dalam nama kolom skema Anda.
Jika skema Anda menggunakan atau bergantung pada struktur data yang ditentukan dalam skema lainnya di registri skema, lakukan langkah-langkah berikut:
- Klik Tambahkan referensi Skema.
- Di kolom Reference name, masukkan nama referensi skema yang dirujuk.
- Dalam daftar Subjek, pilih subjek yang berisi skema yang dirujuk.
- Dalam daftar Version, pilih nomor versi skema yang dirujuk.
- Klik Oke.
Ulangi langkah-langkah ini untuk setiap skema yang dirujuk.
Klik Create.
REST
Untuk memulihkan subjek yang dihapus sementara, gunakan
metode schemaRegistries.subjects.versions.create.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
PROJECT_ID: Project ID Google Cloud Anda -
LOCATION: lokasi schema registry -
REGISTRY_ID: ID registry skema -
SUBJECT: nama subjek -
SCHEMA_DEFINITION: string yang berisi definisi skema
Metode HTTP dan URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT/versions
Meminta isi JSON:
{
"schema": "SCHEMA_DEFINITION"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{
"id": SCHEMA_ID
}
Langkah berikutnya
- Pelajari lebih lanjut registry skema
- Mencantumkan subjek
- Mencantumkan versi subjek
- Menghapus versi subjek skema