Eliminare un soggetto

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

  • Eliminazione temporanea. Contrassegna l'oggetto come eliminato, ma le relative informazioni vengono conservate e possono essere recuperate. Anche tutte le versioni dell'oggetto vengono eliminate temporaneamente.

  • Eliminazione definitiva. Rimuove definitivamente l'oggetto e i dati associati.

Puoi anche eliminare una versione dello schema specifica da un oggetto. Per saperne di più, consulta Eliminare una versione dell'oggetto di schema.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per eliminare un oggetto, chiedi all'amministratore di concederti il ruolo IAM Editor del registro di schema Kafka gestito (roles/managedkafka.schemaRegistryEditor) sull'oggetto. 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 oggetto. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eliminare un oggetto sono necessarie le seguenti autorizzazioni:

  • Concedi la seguente autorizzazione sull'oggetto 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.

Eliminare temporaneamente un oggetto

Assicurati che siano soddisfatte le seguenti condizioni:

  • L'oggetto che stai per eliminare non fa riferimento ad altri schemi. Una richiesta di eliminazione non va a buon fine se una qualsiasi versione dell'oggetto fa riferimento ad altri schemi.

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

Per eliminare temporaneamente un oggetto:

Console

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

    Vai a Registri di schema

  2. Fai clic sul nome del registro di schema contenente l'oggetto da eliminare.

  3. In Oggetti in questo registro di schema, fai clic sul nome dell'oggetto.

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

  5. Seleziona Elimina temporaneamente.

  6. Nella finestra di dialogo Elimina oggetto di 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 credenziali predefinite dell'applicazione corrente: gcloud auth application-default print-access-token.

Per eliminare temporaneamente un oggetto utilizzando l'API REST, invia una DELETE richiesta all' URI appropriato utilizzando il projects.locations.schemaRegistries.contexts.subjects.delete metodo.

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 oggetto in un contesto specifico utilizzando l'API REST, invia una DELETE richiesta all'URI appropriato utilizzando il projects.locations.schemaRegistries.contexts.subjects.delete metodo.

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): l' Google Cloud ID del progetto.
  • LOCATION (obbligatorio): la Google Cloud regione in cui si trova il registro di schema.
  • REGISTRY_ID (obbligatorio): l'ID del registro di schema.
  • CONTEXT_ID (facoltativo): l'ID o il nome del contesto, se elimini un oggetto in un contesto specifico.
  • SUBJECT_ID (facoltativo): l'ID o il nome dell'oggetto che vuoi eliminare.

Ad esempio, per eliminare temporaneamente orders-topic-value dal registro di schema 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 va a buon fine, l'API restituisce un codice di stato 200 OK. Il corpo della risposta contiene un array JSON dei numeri di versione degli schemi appartenenti all'oggetto eliminato.

Eliminare definitivamente un oggetto

L'eliminazione definitiva di un oggetto è 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 fa riferimento ad altri schemi. Una richiesta di eliminazione non va a buon fine se una qualsiasi versione dell'oggetto fa riferimento ad altri schemi.

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

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

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

Console

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

    Vai a Registri di schema

  2. Fai clic sul nome del registro di schema contenente l'oggetto da eliminare.

  3. In Oggetti in questo registro di schema, fai clic sul nome dell'oggetto.

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

  5. Seleziona Elimina definitivamente.

  6. Nella finestra di dialogo Elimina oggetto di 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 oggetto 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 oggetto utilizzando l'API REST, invia una DELETE richiesta all' URI appropriato, includendo il parametro di query permanent=true e utilizzando il projects.locations.schemaRegistries.subjects.delete metodo.

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 oggetto in un contesto specifico utilizzando l'API REST, invia una DELETE richiesta all'URI appropriato, includendo il permanent=true parametro di query e utilizzando il projects.locations.schemaRegistries.contexts.subjects.delete metodo.

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): l' Google Cloud ID del progetto.
  • LOCATION (obbligatorio): la Google Cloud regione in cui si trova il registro di schema.
  • REGISTRY_ID (obbligatorio): l'ID del registro di schema.
  • CONTEXT_ID (facoltativo): l'ID del contesto, se elimini un oggetto in un contesto specifico.
  • SUBJECT_ID (facoltativo): l'ID o il nome dell'oggetto che vuoi eliminare.

Ad esempio, per eliminare definitivamente l'oggetto orders-topic-value eliminato temporaneamente in precedenza dal registro di schema 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 va a buon fine, l'API restituisce un codice di stato 200 OK. Il corpo della risposta contiene un array JSON dei numeri di versione degli schemi appartenenti all'oggetto eliminato.

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

Ripristinare un oggetto eliminato temporaneamente

Per ripristinare un oggetto eliminato temporaneamente:

Console

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

    Vai a Registri di schema

  2. Fai clic sul nome del registro di schema contenente l'oggetto eliminato temporaneamente.

  3. Per Filtro, fai clic su Annulla per cancellare il Eliminato temporaneamente: No filtro.

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

  5. Nella pagina Dettagli oggetto, 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) oppure 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 di schema:

    1. Fai clic su Aggiungi riferimento allo schema.
    2. Nel campo Nome di riferimento, inserisci il nome di riferimento dello schema a cui fai riferimento.
    3. Nell'elenco Oggetto, seleziona l'oggetto contenente lo schema a cui fai riferimento.
    4. Nell'elenco Versione, seleziona il numero di versione dello schema a cui fai riferimento.
    5. Fai clic su OK.

    Ripeti questi passaggi per ogni schema a cui fai riferimento.

  9. Fai clic su Crea.

REST

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

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

  • PROJECT_ID: l'ID del tuo Google Cloud progetto
  • LOCATION: la località del registro di schema
  • REGISTRY_ID: l'ID del registro di schema
  • SUBJECT: il nome dell'oggetto
  • 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 The Apache Software Foundation o delle sue affiliate negli Stati Uniti e/o in altri paesi.