Menghapus subjek

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

  1. Di konsol Google Cloud , buka halaman Schema registries.

    Buka Schema registry

  2. Klik nama registry skema yang berisi subjek yang akan dihapus.

  3. Di bagian Subjek dalam registry skema ini, klik nama subjek.

  4. Di halaman Detail subjek, klik Hapus.

  5. Pilih Hapus Sementara.

  6. Pada dialog Hapus subjek skema, ketik delete pada kolom.

  7. 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

  1. Di konsol Google Cloud , buka halaman Schema registries.

    Buka Schema registry

  2. Klik nama registry skema yang berisi subjek yang akan dihapus.

  3. Di bagian Subjek dalam registry skema ini, klik nama subjek.

  4. Di halaman Detail subjek, klik Hapus.

  5. Pilih Hapus Permanen.

  6. Pada dialog Hapus subjek skema, ketik delete pada kolom.

  7. 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

  1. Di konsol Google Cloud , buka halaman Schema registries.

    Buka Schema registry

  2. Klik nama registry skema yang berisi subjek yang dihapus sementara.

  3. Untuk Filter, klik Batal untuk menghapus filter Dihapus sementara: Tidak.

  4. Klik nama subjek yang akan dipulihkan.

  5. Di halaman Subject details, klik Create version to restore.

  6. Untuk Schema type, pilih Avro atau Protocol Buffer.

  7. Di kolom Definisi skema, masukkan definisi skema. Jangan sertakan informasi sensitif seperti informasi identitas pribadi (PII) atau data keamanan dalam nama kolom skema Anda.

  8. Jika skema Anda menggunakan atau bergantung pada struktur data yang ditentukan dalam skema lainnya di registri skema, lakukan langkah-langkah berikut:

    1. Klik Tambahkan referensi Skema.
    2. Di kolom Reference name, masukkan nama referensi skema yang dirujuk.
    3. Dalam daftar Subjek, pilih subjek yang berisi skema yang dirujuk.
    4. Dalam daftar Version, pilih nomor versi skema yang dirujuk.
    5. Klik Oke.

    Ulangi langkah-langkah ini untuk setiap skema yang dirujuk.

  9. 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

Apache Kafka® adalah merek dagang terdaftar milik The Apache Software Foundation atau afiliasinya di Amerika Serikat dan/atau negara lain.