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 Das Subjekt wird als gelöscht markiert, 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 Thema in der Console löschen, gewähren Sie die folgende Berechtigung, um das Thema aufzurufen:
managedkafka.subjects.list
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
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 auf eine Version im Thema in anderen Schemas 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
Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.
Klicken Sie auf den Namen der Schemaregistrierung, die das zu löschende Thema enthält.
Klicken Sie unter Subjekte in dieser Schema-Registry auf den Namen des Subjekts.
Klicken Sie auf der Seite Details zum Thema auf Löschen.
Wählen Sie Vorläufig löschen aus.
Geben Sie im Dialogfeld Schemasubjekt löschen den Wert
deletein das Feld ein.Klicken Sie auf Löschen. Durch diese Aktion wird das Subjekt vor dem endgültigen Löschen vorläufig gelöscht.
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 Thema mit 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)
Wenn die Anfrage erfolgreich ist, 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 ist irreversibel. 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
Read-only-Modus befinden.Sichern Sie alle erforderlichen Schemainformationen, bevor Sie mit dem Löschen fortfahren.
Aktive Produzenten oder Verbraucher dürfen sich nicht auf die Schemas in diesem Thema verlassen, da das Löschen zu Störungen führen kann.
Console
Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.
Klicken Sie auf den Namen der Schemaregistrierung, die das zu löschende Thema enthält.
Klicken Sie unter Subjekte in dieser Schema-Registry auf den Namen des Subjekts.
Klicken Sie auf der Seite Details zum Thema auf Löschen.
Wählen Sie Endgültig löschen aus.
Geben Sie im Dialogfeld Schemasubjekt löschen den Wert
deletein das Feld ein.Klicken Sie auf Löschen. Durch diese Aktion wird das Subjekt vor dem endgültigen Löschen vorläufig gelöscht.
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 mit 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 mit 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, einschließlich des Abfrageparameters permanent=true und 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?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)
Wenn die Anfrage erfolgreich ist, 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 Motiv wiederherstellen
So stellen Sie ein vorläufig gelöschtes Thema wieder her:
Console
Rufen Sie in der Google Cloud Console die Seite Schema-Registries auf.
Klicken Sie auf den Namen der Schemaregistrierung, die das vorläufig gelöschte Thema enthält.
Klicken Sie für Filter auf Abbrechen, um den Filter Vorläufig gelöscht: Nein zu entfernen.
Klicken Sie auf den Namen des wiederherzustellenden Themas.
Klicken Sie auf der Seite Subject details (Details zum Thema) auf Create version to restore (Version zum Wiederherstellen erstellen).
Wählen Sie für Schematyp die Option Avro oder Protocol Buffer aus.
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.
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:
- Klicken Sie auf Schemareferenz hinzufügen.
- Geben Sie im Feld Referenzname den Referenznamen des referenzierten Schemas ein.
- Wählen Sie in der Liste Betreff den Betreff aus, der das referenzierte Schema enthält.
- Wählen Sie in der Liste Version die Versionsnummer des referenzierten Schemas aus.
- Klicken Sie auf OK.
Wiederholen Sie diese Schritte für jedes referenzierte Schema.
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 Schemaregistrierung -
SUBJECT: der Name des Subjekts -
SCHEMA_DEFINITION: ein String mit der Schemadefinition
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
- Weitere Informationen zur Schemaregistrierung
- Themen auflisten
- Betreffversionen auflisten
- Schema-Subjektversion löschen