Betreff löschen

In diesem Dokument wird beschrieben, wie Sie ein Thema aus einer Schemaregistrierung löschen. Es gibt zwei Möglichkeiten, ein Thema zu löschen:

  • Vorläufiges Löschen Markiert das Subjekt als gelöscht, seine Informationen werden jedoch beibehalten und können wiederhergestellt werden. Alle Versionen des Themas werden ebenfalls vorläufig gelöscht.

  • Endgültig löschen Entfernt das Thema und die zugehörigen Daten endgültig.

Sie können auch eine bestimmte Schemaversion aus einem Thema löschen. Weitere Informationen finden Sie unter Schema-Themenversion löschen.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) für Ihr Thema zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Löschen eines Themas benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Löschen eines Themas erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Löschen eines Themas erforderlich:

  • Erteilen Sie die folgende Berechtigung für das zu löschende Subjekt: managedkafka.subjects.delete
  • Wenn Sie das Fach in der Konsole löschen, gewähren Sie die folgende Berechtigung, um das Fach anzusehen: managedkafka.subjects.list

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Mit der Rolle Managed Kafka Schema Registry Admin (roles/managedkafka.schemaRegistryAdmin) können Sie auch Themen löschen.

Weitere Informationen zu vordefinierten Rollen finden Sie unter Vordefinierte Rollen für Managed Service for Apache Kafka.

Thema vorläufig löschen

Achten Sie darauf, dass die folgenden Bedingungen erfüllt sind:

  • Das zu löschende Subjekt wird nicht von anderen Schemas referenziert. Ein Antrag auf Löschung schlägt fehl, wenn in anderen Schemas auf eine Version des Subjekts verwiesen wird.

  • Die Schema-Registry, zu der das Subjekt gehört, oder das Subjekt selbst dürfen sich nicht im Read-only-Modus befinden.

So löschen Sie ein Thema vorläufig:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.

    Zu Schemaregistrierungen

  2. Klicken Sie auf den Namen der Schemaregistrierung, die das zu löschende Thema enthält.

  3. Klicken Sie unter Subjekte in dieser Schema-Registry auf den Namen des Subjekts.

  4. Klicken Sie auf der Seite Themendetails auf  Löschen.

  5. Wählen Sie Vorläufig löschen aus.

  6. Geben Sie im Dialogfeld Schemasubjekt löschen delete in das Feld ein.

  7. Klicken Sie auf Löschen. Bei dieser Aktion wird das Subjekt vorläufig gelöscht, bevor es endgültig gelöscht wird.

REST

Die Anfrage muss mit einem Zugriffstoken im Header Authorization authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token.

Wenn Sie ein Fach mithilfe der REST API vorläufig löschen möchten, senden Sie eine DELETE-Anfrage an den entsprechenden URI mit der Methode 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)

Wenn Sie ein Thema in einem bestimmten Kontext mithilfe der REST API vorläufig löschen möchten, senden Sie eine DELETE-Anfrage an den entsprechenden URI mit der Methode 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)

Ersetzen Sie Folgendes:

  • PROJECT_ID (erforderlich): Ihre Google Cloud-Projekt-ID.
  • LOCATION (erforderlich): Die Google Cloud Region, in der sich die Schemaregistrierung befindet.
  • REGISTRY_ID (erforderlich): Die ID Ihrer Schemaregistrierung.
  • CONTEXT_ID (optional): Die ID oder der Name des Kontexts, wenn ein Thema in einem bestimmten Kontext gelöscht wird.
  • SUBJECT_ID (optional): die ID oder der Name des Themas, das Sie löschen möchten.

Wenn Sie beispielsweise orders-topic-value aus der Schema-Registry test_registry im Projekt test-gcp-project und am Standort us-central1 vorläufig löschen möchten, stellen Sie die folgende Anfrage:

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)

Bei einer erfolgreichen Anfrage gibt die API den Statuscode 200 OK zurück. Der Antworttext enthält ein JSON-Array mit den Versionsnummern der Schemas, die zum gelöschten Thema gehörten.

Thema endgültig löschen

Das endgültige Löschen eines Subjekts kann nicht rückgängig gemacht werden. Dabei werden auch alle zugehörigen Schemaversionen gelöscht.

Achten Sie darauf, dass die folgenden Bedingungen erfüllt sind:

  • Auf das zu löschende Subjekt wird nicht von anderen Schemas verwiesen. Eine Löschanfrage schlägt fehl, wenn in anderen Schemas auf eine Version im Subjekt verwiesen wird.

  • Die Schema-Registry, zu der das Subjekt gehört, oder das Subjekt selbst dürfen sich nicht im Modus Read-only befinden.

  • Sichern Sie alle erforderlichen Schemainformationen, bevor Sie mit dem Löschen fortfahren.

  • Aktive Produzenten oder Konsumenten dürfen sich nicht auf die Schemas in diesem Thema verlassen, da das Löschen zu Störungen führen kann.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.

    Zu Schemaregistrierungen

  2. Klicken Sie auf den Namen der Schemaregistrierung, die das zu löschende Thema enthält.

  3. Klicken Sie unter Subjekte in dieser Schema-Registry auf den Namen des Subjekts.

  4. Klicken Sie auf der Seite Themendetails auf  Löschen.

  5. Wählen Sie Endgültig löschen aus.

  6. Geben Sie im Dialogfeld Schemasubjekt löschen delete in das Feld ein.

  7. Klicken Sie auf Löschen. Bei dieser Aktion wird das Subjekt vorläufig gelöscht, bevor es endgültig gelöscht wird.

REST

Wenn Sie ein Fach mit der REST API endgültig löschen möchten, müssen Sie es zuerst vorläufig löschen. Nach dem vorläufigen Löschen können Sie mit dem endgültigen Löschen fortfahren.

Die Anfrage muss mit einem Zugriffstoken im Header Authorization authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token.

Wenn Sie ein Thema mithilfe der REST API endgültig löschen möchten, senden Sie eine DELETE-Anfrage an den entsprechenden URI, einschließlich des Abfrageparameters permanent=true und der Methode 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)

Wenn Sie ein Thema in einem bestimmten Kontext mithilfe der REST API endgültig löschen möchten, senden Sie eine DELETE-Anfrage an den entsprechenden URI. Fügen Sie den Abfrageparameter permanent=true ein und verwenden Sie die Methode 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)

Ersetzen Sie Folgendes:

  • PROJECT_ID (erforderlich): Ihre Google Cloud-Projekt-ID.
  • LOCATION (erforderlich): Die Google Cloud Region, in der sich die Schemaregistrierung befindet.
  • REGISTRY_ID (erforderlich): Die ID Ihrer Schemaregistrierung.
  • CONTEXT_ID (optional): Die ID des Kontexts, wenn ein Thema in einem bestimmten Kontext gelöscht wird.
  • SUBJECT_ID (optional): die ID oder der Name des Themas, das Sie löschen möchten.

Wenn Sie beispielsweise das zuvor vorläufig gelöschte Subjekt orders-topic-value aus der Schema-Registry test_registry im Projekt test-gcp-project und am Standort us-central1 endgültig löschen möchten, stellen Sie die folgende Anfrage:

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)

Bei einer erfolgreichen Anfrage gibt die API den Statuscode 200 OK zurück. Der Antworttext enthält ein JSON-Array mit den Versionsnummern der Schemas, die zum gelöschten Thema gehörten.

Weitere Informationen finden Sie unter projects.locations.schemaRegistries.contexts.subjects.delete.

Vorläufig gelöschtes Thema wiederherstellen

Führen Sie die folgenden Schritte aus, um ein vorläufig gelöschtes Thema wiederherzustellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.

    Zu Schemaregistrierungen

  2. Klicken Sie auf den Namen der Schemaregistrierung, die das vorläufig gelöschte Thema enthält.

  3. Klicken Sie für Filter auf Abbrechen, um den Filter Vorläufig gelöscht: Nein zu entfernen.

  4. Klicken Sie auf den Namen des wiederherzustellenden Themas.

  5. Klicken Sie auf der Seite Themendetails auf Version zum Wiederherstellen erstellen.

  6. Wählen Sie als Schematyp entweder Avro oder Protocol Buffer aus.

  7. Geben Sie im Feld Schemadefinition die Definition des Schemas ein. Die Namen von Schemafeldern dürfen keine vertraulichen Informationen wie personenidentifizierbare Informationen oder Sicherheitsdaten enthalten.

  8. Wenn Ihr Schema Datenstrukturen verwendet oder von Datenstrukturen abhängt, die in anderen Schemas in der Schema-Registry definiert sind, führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf Schemareferenz hinzufügen.
    2. Geben Sie im Feld Referenzname den Referenznamen des referenzierten Schemas ein.
    3. Wählen Sie in der Liste Subject das Thema aus, das das referenzierte Schema enthält.
    4. Wählen Sie in der Liste Version die Versionsnummer des referenzierten Schemas aus.
    5. Klicken Sie auf OK.

    Wiederholen Sie diese Schritte für jedes referenzierte Schema.

  9. Klicken Sie auf Erstellen.

REST

Verwenden Sie die Methode schemaRegistries.subjects.versions.create, um ein vorläufig gelöschtes Thema wiederherzustellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • LOCATION: der Speicherort der Schemaregistrierung
  • REGISTRY_ID: die ID der Schemaregistry
  • SUBJECT: der Name des Subjekts
  • SCHEMA_DEFINITION: Ein String, der die Schemadefinition enthält.

HTTP-Methode und URL:

POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT/versions

JSON-Text anfordern:

{
  "schema": "SCHEMA_DEFINITION"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "id": SCHEMA_ID
}

Nächste Schritte

Apache Kafka® ist eine eingetragene Marke der Apache Software Foundation oder deren Tochtergesellschaften in den USA und/oder anderen Ländern.