Questo documento descrive come eliminare una versione specifica di un argomento dello schema da un registro degli schemi. Esistono due modi per eliminare una versione di un soggetto:
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 relativi dati.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per eliminare una versione di un soggetto schema,
chiedi all'amministratore di concederti il ruolo IAM
Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor)
sul soggetto 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 di un argomento dello schema. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eliminare una versione di un soggetto dello schema sono necessarie le seguenti autorizzazioni:
-
Concedi la seguente autorizzazione per l'argomento principale:
managedkafka.googleapis.com/subjectVersions.delete
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni sui ruoli predefiniti, consulta la pagina Ruoli predefiniti di Managed Service per Apache Kafka.
Eliminare temporaneamente una versione dell'oggetto di schema
Di seguito sono riportate alcune best practice per l'eliminazione temporanea di una versione del soggetto dello schema:
Verifica che nessun produttore o consumatore attivo stia utilizzando la versione dell'argomento dello schema che intendi eliminare.
Dopo aver eliminato una versione del soggetto dello 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 hai la certezza di eliminare una versione dell'oggetto di schema.
Per eliminare temporaneamente una versione del soggetto dello schema:
Console
Nella console Google Cloud , vai alla pagina Registri di schemi.
Fai clic sul nome del registro degli schemi in cui si trova l'argomento.
In Soggetti in questo registro di schema, fai clic sul nome del soggetto.
Nell'elenco Tutte le versioni, individua la versione che vuoi eliminare e fai clic su Altre azioni.
Fai clic su Elimina versione.
Nella finestra Elimina versione dello schema, fai clic su Eliminazione temporanea.
Conferma l'eliminazione digitando
deletee poi fai clic su Elimina.
REST
Per eliminare temporaneamente una versione di un soggetto schema, invia una richiesta DELETE al
metodo projects.locations.schemaRegistries.subjects.versions.delete.
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 correnti, 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 Google Cloud , ad esempio
test-project. - LOCATION: la Google Cloud regione in cui si trova il
registro degli schemi, ad esempio
us-central1. - REGISTRY_ID: l'ID del tuo registro degli schemi, ad esempio
test_registry. - CONTEXT_ID: l'ID del contesto, ad esempio
test_context. - SUBJECT_ID: l'ID del soggetto, ad esempio
test_subject. - VERSION_ID: la versione del soggetto da eliminare, ad esempio
2olatest. - SERVICE_ACCOUNT: il account di servizio, ad esempio
test-service-account@test-project.iam.gserviceaccount.com.
Se la richiesta riesce, l'API restituisce un codice di stato 200 OK e un corpo della risposta vuoto.
Per saperne di più, consulta la documentazione del metodo
projects.locations.schemaRegistries.subjects.versions.delete.
Eliminare definitivamente una versione dell'oggetto di schema
Di seguito sono riportate alcune best practice per l'eliminazione definitiva di una versione del soggetto dello schema:
Assicurati di avere un backup o un modo per ricreare la versione dell'argomento dello schema, se necessario.
Verifica che nessun produttore o consumatore attivo stia utilizzando la versione dell'argomento dello schema che intendi eliminare.
Testa sempre le eliminazioni delle versioni dell'oggetto dello schema in un ambiente di sviluppo o staging prima di applicare le modifiche alla produzione.
Dopo aver eliminato una versione del soggetto dello schema, monitora le applicazioni per assicurarti che continuino a funzionare come previsto.
Utilizza l'eliminazione definitiva quando devi rimuovere definitivamente una versione di un soggetto dello schema.
Per eliminare definitivamente una versione del soggetto dello schema:
Console
Nella console Google Cloud , vai alla pagina Registri di schemi.
Fai clic sul nome del registro degli schemi in cui si trova l'argomento.
In Soggetti in questo registro di schema, fai clic sul nome del soggetto.
Nell'elenco Tutte le versioni, individua la versione che vuoi eliminare e fai clic su Altre azioni.
Fai clic su Elimina versione.
Nella finestra Elimina versione dello schema, fai clic su Eliminazione definitiva.
Conferma l'eliminazione digitando
deletee poi fai clic su Elimina. Questa azione elimina temporaneamente la versione dell'oggetto prima di eliminarla definitivamente.
REST
Per eliminare definitivamente una versione del soggetto dello schema utilizzando l'API REST, devi prima eliminarla temporaneamente. Una volta eliminato temporaneamente, puoi procedere con l'eliminazione definitiva.
Per eliminare definitivamente una versione di un argomento dello schema, invia una richiesta DELETE al
metodo projects.locations.schemaRegistries.subjects.versions.delete. 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 correnti, 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 ID progetto Google Cloud , ad esempio
test-project. - LOCATION: la Google Cloud regione in cui si trova il
registro degli schemi, ad esempio
us-central1. - REGISTRY_ID: l'ID del tuo registro degli schemi, ad esempio
test_registry. - CONTEXT_ID: l'ID del contesto, ad esempio
test_context. - SUBJECT_ID: l'ID del soggetto, ad esempio
test_subject. - VERSION_ID: la versione del soggetto da eliminare, ad esempio
2olatest. - SERVICE_ACCOUNT: il account di servizio, ad esempio
test-service-account@test-project.iam.gserviceaccount.com.
Se la richiesta riesce, l'API restituisce un codice di stato 200 OK e un corpo della risposta vuoto.
Per saperne di più, consulta la documentazione del metodo
projects.locations.schemaRegistries.subjects.versions.delete.
Passaggi successivi
- Scopri di più sul registro degli schemi
- Elencare le versioni dell'argomento
- Registrare una nuova versione dello schema