Eliminare un soggetto

Questo documento descrive come eliminare un argomento da un registro di schema. Esistono due modi per eliminare un soggetto:

  • Eliminazione temporanea. Contrassegna il soggetto come eliminato, ma le sue informazioni vengono conservate e possono essere recuperate. Vengono eliminate temporaneamente anche tutte le versioni dell'argomento.

  • Eliminazione definitiva. Rimuove definitivamente il soggetto e i relativi dati associati.

Puoi anche eliminare una versione specifica dello schema da un soggetto. Per saperne di più, consulta Eliminare una versione del soggetto dello schema.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per eliminare un soggetto, chiedi all'amministratore di concederti il ruolo IAM Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) sul soggetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per eliminare un soggetto. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eliminare un argomento sono necessarie le seguenti autorizzazioni:

  • Concedi la seguente autorizzazione al soggetto da eliminare: managedkafka.subjects.delete
  • Se elimini nella console, concedi la seguente autorizzazione per visualizzare l'oggetto: managedkafka.subjects.list

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Il ruolo Managed Kafka Schema Registry Admin (roles/managedkafka.schemaRegistryAdmin) ti consente anche di eliminare i soggetti.

Per saperne di più sui ruoli predefiniti, consulta la pagina Ruoli predefiniti di Managed Service per Apache Kafka.

Eliminare temporaneamente un soggetto

Assicurati che siano soddisfatte le seguenti condizioni:

  • Il soggetto che stai per eliminare non viene citato da altri schemi. Una richiesta di eliminazione non va a buon fine se una versione nell'oggetto viene a cui fanno riferimento altri schemi.

  • Il registro di schema a cui appartiene il soggetto o il soggetto stesso non deve essere in modalità Read-only.

Per eliminare temporaneamente un argomento:

Console

  1. Nella console Google Cloud , vai alla pagina Registri di schemi.

    Vai a Registri di schema

  2. Fai clic sul nome del registro dello schema che contiene l'argomento da eliminare.

  3. In Soggetti in questo registro di schema, fai clic sul nome del soggetto.

  4. Nella pagina Dettagli soggetto, fai clic su Elimina.

  5. Seleziona Eliminazione temporanea.

  6. Nella finestra di dialogo Elimina argomento schema, digita delete nel campo.

  7. Fai clic su Elimina. Questa azione elimina temporaneamente l'oggetto prima di eliminarlo definitivamente.

REST

La richiesta deve essere autenticata con un token di accesso nell'intestazione Authorization. Per ottenere un token di accesso per le attuali Credenziali predefinite dell'applicazione: gcloud auth application-default print-access-token.

Per eliminare temporaneamente un soggetto utilizzando l'API REST, invia una richiesta DELETE all'URI appropriato utilizzando il metodo 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)

Per eliminare temporaneamente un soggetto in un contesto specifico utilizzando l'API REST, invia una richiesta DELETE all'URI appropriato utilizzando il metodo 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)

Sostituisci quanto segue:

  • PROJECT_ID (obbligatorio): il tuo Google Cloud ID progetto.
  • LOCATION (obbligatorio): la Google Cloud regione in cui si trova il registro di schema.
  • REGISTRY_ID (obbligatorio): l'ID del registro schemi.
  • CONTEXT_ID (facoltativo): l'ID o il nome del contesto, se elimini un argomento in un contesto specifico.
  • SUBJECT_ID (facoltativo): l'ID o il nome del soggetto che vuoi eliminare.

Ad esempio, per eliminare temporaneamente orders-topic-value dal registro di schemi test_registry nel progetto test-gcp-project e nella località us-central1, invia la seguente richiesta:

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)

Se la richiesta ha esito positivo, l'API restituisce un codice di stato 200 OK. Il corpo della risposta contiene un array JSON dei numeri di versione degli schemi appartenenti al soggetto eliminato.

Eliminare definitivamente un argomento

L'eliminazione definitiva di un argomento è irreversibile e comporta anche l'eliminazione di tutte le versioni dello schema associate.

Assicurati che siano soddisfatte le seguenti condizioni:

  • L'oggetto che stai per eliminare non viene referenziato da altri schemi. Una richiesta di eliminazione non va a buon fine se viene fatto riferimento a una versione nell'oggetto da altri schemi.

  • Il registro di schema a cui appartiene il soggetto o il soggetto stesso non deve essere in modalità Read-only.

  • Esegui il backup di tutte le informazioni sullo schema necessarie prima di procedere con l'eliminazione.

  • Nessun produttore o consumatore attivo deve fare affidamento sugli schemi all'interno di questo argomento, poiché l'eliminazione può causare interruzioni.

Console

  1. Nella console Google Cloud , vai alla pagina Registri di schemi.

    Vai a Registri di schema

  2. Fai clic sul nome del registro dello schema che contiene l'argomento da eliminare.

  3. In Soggetti in questo registro di schema, fai clic sul nome del soggetto.

  4. Nella pagina Dettagli soggetto, fai clic su Elimina.

  5. Seleziona Eliminazione definitiva.

  6. Nella finestra di dialogo Elimina argomento schema, digita delete nel campo.

  7. Fai clic su Elimina. Questa azione elimina temporaneamente l'oggetto prima di eliminarlo definitivamente.

REST

Per eliminare definitivamente un soggetto utilizzando l'API REST, devi prima eliminarlo temporaneamente. Una volta eliminato temporaneamente, puoi procedere con l'eliminazione definitiva.

La richiesta deve essere autenticata con un token di accesso nell'intestazione Authorization. Per ottenere un token di accesso per le credenziali predefinite dell'applicazione corrente: gcloud auth application-default print-access-token.

Per eliminare definitivamente un soggetto utilizzando l'API REST, invia una richiesta DELETE all'URI appropriato, includi il parametro di query permanent=true e utilizza il metodo 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)

Per eliminare definitivamente un soggetto in un contesto specifico utilizzando l'API REST, invia una richiesta DELETE all'URI appropriato, incluso il parametro di query permanent=true e utilizzando il metodo 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)

Sostituisci quanto segue:

  • PROJECT_ID (obbligatorio): il tuo Google Cloud ID progetto.
  • LOCATION (obbligatorio): la Google Cloud regione in cui si trova il registro di schema.
  • REGISTRY_ID (obbligatorio): l'ID del registro schemi.
  • CONTEXT_ID (facoltativo): l'ID del contesto, se elimini un argomento in un contesto specifico.
  • SUBJECT_ID (facoltativo): l'ID o il nome del soggetto che vuoi eliminare.

Ad esempio, per eliminare definitivamente l'oggetto orders-topic-value eliminato temporaneamente in precedenza dal registro di schemi test_registry nel progetto test-gcp-project e nella località us-central1, invia la seguente richiesta:

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)

Se la richiesta ha esito positivo, l'API restituisce un codice di stato 200 OK. Il corpo della risposta contiene un array JSON dei numeri di versione degli schemi appartenenti al soggetto eliminato.

Per saperne di più, vedi projects.locations.schemaRegistries.contexts.subjects.delete.

Ripristinare un soggetto eliminato temporaneamente

Per ripristinare un soggetto eliminato temporaneamente, segui questi passaggi.

Console

  1. Nella console Google Cloud , vai alla pagina Registri di schemi.

    Vai a Registri di schema

  2. Fai clic sul nome del registro dello schema che contiene l'argomento eliminato in modo temporaneo.

  3. Per Filtro, fai clic su Annulla per cancellare il filtro Eliminazione temporanea: No.

  4. Fai clic sul nome dell'argomento da ripristinare.

  5. Nella pagina Dettagli soggetto, fai clic su Crea versione da ripristinare.

  6. In Tipo di schema, seleziona Avro o Protocol Buffer.

  7. Nel campo Definizione dello schema, inserisci la definizione dello schema. Non includere informazioni sensibili come quelle che consentono l'identificazione personale (PII) o dati di sicurezza nei nomi dei campi dello schema.

  8. Se lo schema utilizza o dipende da strutture di dati definite in altri schemi nel registro degli schemi, segui questi passaggi:

    1. Fai clic su Add Schema reference (Aggiungi riferimento allo schema).
    2. Nel campo Reference name (Nome di riferimento), inserisci il nome di riferimento dello schema a cui viene fatto riferimento.
    3. Nell'elenco Oggetto, seleziona l'oggetto che contiene lo schema a cui viene fatto riferimento.
    4. Nell'elenco Versione, seleziona il numero di versione dello schema a cui viene fatto riferimento.
    5. Fai clic su OK.

    Ripeti questi passaggi per ogni schema a cui viene fatto riferimento.

  9. Fai clic su Crea.

REST

Per ripristinare un soggetto eliminato temporaneamente, utilizza il metodo schemaRegistries.subjects.versions.create.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo Google Cloud ID progetto
  • LOCATION: la posizione del registro dello schema
  • REGISTRY_ID: l'ID del registro di schemi
  • SUBJECT: il nome della materia
  • SCHEMA_DEFINITION: una stringa che contiene la definizione dello schema

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "schema": "SCHEMA_DEFINITION"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "id": SCHEMA_ID
}

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o delle sue affiliate negli Stati Uniti e/o in altri paesi.