Eliminare una versione dell'oggetto di schema

Questo documento descrive come eliminare una versione specifica di un oggetto di schema da un registro di schema. Esistono due modi per eliminare una versione dell'oggetto:

  • Eliminazione temporanea. Contrassegna la versione come eliminata, ma le relative informazioni vengono conservate e possono essere recuperate.

  • Eliminazione definitiva. Rimuove definitivamente la versione e i dati associati.

Ruoli e autorizzazioni richiesti

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

Autorizzazioni obbligatorie

Per eliminare una versione dell'oggetto di schema sono necessarie le seguenti autorizzazioni:

  • Concedi la seguente autorizzazione sull'oggetto principale: managedkafka.googleapis.com/subjectVersions.delete

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

Eliminare temporaneamente una versione dell'oggetto di schema

Di seguito sono riportate alcune best practice per l'eliminazione temporanea di una versione dell'oggetto di schema:

  • Verifica che nessun produttore o consumer attivo stia utilizzando la versione dell'oggetto di schema che intendi eliminare.

  • Dopo aver eliminato una versione dell'oggetto di schema, monitora le applicazioni per assicurarti che continuino a funzionare come previsto.

  • L'eliminazione temporanea consente il recupero delle versioni dell'oggetto di schema eliminate, il che è utile se non sei sicuro di eliminare una versione dell'oggetto di schema.

Per eliminare temporaneamente una versione dell'oggetto di schema:

Console

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

    Vai ai registri di schema

  2. Fai clic sul nome del registro di schema in cui si trova l'oggetto.

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

  4. Nell'elenco Tutte le versioni, trova la versione che vuoi eliminare e fai clic su Altre azioni.

  5. Fai clic su Elimina versione.

  6. Nella finestra Elimina versione dello schema, fai clic su Elimina temporaneamente.

  7. Digita delete per confermare l'eliminazione, quindi fai clic su Elimina.

REST

Per eliminare temporaneamente una versione dell'oggetto di schema, invia una DELETE richiesta al projects.locations.schemaRegistries.subjects.versions.delete metodo.

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, esegui questo comando: gcloud auth application-default print-access-token.

Per eliminare temporaneamente la versione dell'oggetto di schema:

  • Utilizza il seguente comando per il contesto predefinito:

    DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID/versions/VERSION_ID
    Authorization: Bearer $(gcloud auth application-default print-access-token)
    
  • Utilizza il seguente comando per un contesto specifico:

    DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID/versions/VERSION_ID
    Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)
    

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto, ad esempio test-project. Google Cloud
  • LOCATION: laregione in cui si trova il registro di schema, ad esempio us-central1. Google Cloud
  • REGISTRY_ID: l'ID del registro di schema, ad esempio, test_registry.
  • CONTEXT_ID: l'ID del contesto, ad esempio test_context.
  • SUBJECT_ID: l'ID dell'oggetto, ad esempio test_subject.
  • VERSION_ID: la versione dell'oggetto da eliminare, ad esempio 2 o latest.
  • SERVICE_ACCOUNT: l'account di servizio, ad esempio test-service-account@test-project.iam.gserviceaccount.com.

Se la richiesta va a buon fine, l'API restituisce un codice di stato 200 OK e un corpo della risposta vuoto.

Per saperne di più, consulta la documentazione del projects.locations.schemaRegistries.subjects.versions.delete metodo.

Eliminare definitivamente una versione dell'oggetto di schema

Di seguito sono riportate alcune best practice per l'eliminazione definitiva di una versione dell'oggetto di schema:

  • Assicurati di avere un backup o un modo per ricreare la versione dell'oggetto di schema, se necessario.

  • Verifica che nessun produttore o consumer attivo stia utilizzando la versione dell'oggetto di schema che intendi eliminare.

  • Testa sempre le eliminazioni delle versioni dell'oggetto di schema in un ambiente di sviluppo o di gestione temporanea prima di applicare le modifiche in produzione.

  • Dopo aver eliminato una versione dell'oggetto di schema, monitora le applicazioni per assicurarti che continuino a funzionare come previsto.

  • Utilizza l'eliminazione definitiva quando devi rimuovere definitivamente una versione dell'oggetto di schema.

Per eliminare definitivamente una versione dell'oggetto di schema:

Console

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

    Vai ai registri di schema

  2. Fai clic sul nome del registro di schema in cui si trova l'oggetto.

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

  4. Nell'elenco Tutte le versioni, trova la versione che vuoi eliminare e fai clic su Altre azioni.

  5. Fai clic su Elimina versione.

  6. Nella finestra Elimina versione dello schema, fai clic su Elimina definitivamente.

  7. Digita delete per confermare l'eliminazione, quindi fai clic su Elimina. Questa azione elimina temporaneamente la versione dell'oggetto prima di eliminarla definitivamente.

REST

Per eliminare definitivamente una versione dell'oggetto di schema utilizzando l'API REST, devi prima eliminarla temporaneamente. Una volta eliminata temporaneamente, puoi procedere con l'eliminazione definitiva.

Per eliminare definitivamente una versione dell'oggetto di schema, invia una DELETE richiesta al projects.locations.schemaRegistries.subjects.versions.delete metodo. Per eliminare definitivamente la versione dell'oggetto di schema, includi il parametro di query hardDelete=true.

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, esegui questo comando: gcloud auth application-default print-access-token.

Per eliminare definitivamente la versione dell'oggetto di schema:

  • Utilizza il seguente comando per il contesto predefinito:

    DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID/versions/VERSION_ID?hardDelete=true
    Authorization: Bearer $(gcloud auth application-default print-access-token)
    
  • Utilizza il seguente comando per un contesto specifico:

    DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID/versions/VERSION_ID?hardDelete=true
    Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)
    

Sostituisci quanto segue:

  • PROJECT_ID: il tuo Google Cloud ID progetto, ad esempio, test-project.
  • LOCATION: laregione in cui si trova il registro di schema, ad esempio us-central1. Google Cloud
  • REGISTRY_ID: l'ID del registro di schema, ad esempio, test_registry.
  • CONTEXT_ID: l'ID del contesto, ad esempio test_context.
  • SUBJECT_ID: l'ID dell'oggetto, ad esempio test_subject.
  • VERSION_ID: la versione dell'oggetto da eliminare, ad esempio 2 o latest.
  • SERVICE_ACCOUNT: l'account di servizio, ad esempio test-service-account@test-project.iam.gserviceaccount.com.

Se la richiesta va a buon fine, l'API restituisce un codice di stato 200 OK e un corpo della risposta vuoto.

Per saperne di più, consulta la documentazione del projects.locations.schemaRegistries.subjects.versions.delete metodo.

Passaggi successivi

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