Quando crei una nuova versione dello schema, il registro di schema verifica che la nuova versione sia compatibile con le versioni precedenti. L'applicazione della compatibilità dello schema contribuisce a garantire che i produttori e i consumatori di dati continuino a funzionare correttamente man mano che la struttura dei dati si evolve.
I valori supportati per il tipo di compatibilità sono Backward, Backward transitive, Forward, Forward transitive, Full, Full transitive o None.
Il tipo di compatibilità viene gestito come oggetto JSON. Ad esempio:
{ "compatibility": "BACKWARD" }Se non è impostato in modo esplicito, il tipo di compatibilità per un registro di schemi è impostato per impostazione predefinita su Backward.
Se un tipo di compatibilità non è impostato per un soggetto, questo eredita il valore dal registro di schema.
Le configurazioni impostate a livello di soggetto sostituiscono quelle a livello di registro di schemi.
L'aggiornamento del tipo di compatibilità influisce solo sulle nuove versioni dello schema registrate dopo l'aggiornamento.
Per ulteriori informazioni sui tipi di compatibilità, vedi Informazioni sul tipo di compatibilità.
Ruoli e autorizzazioni richiesti per aggiornare il tipo di compatibilità
Per ottenere le autorizzazioni
necessarie per aggiornare il tipo di compatibilità per un registro di schema o un argomento,
chiedi all'amministratore di concederti il
ruolo IAM Editor del registro di schema Managed Kafka (roles/managedkafka.schemaRegistryEditor)
nel progetto.
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 aggiornare il tipo di compatibilità per un registro degli schemi o un soggetto. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per aggiornare il tipo di compatibilità per un registro degli schemi o un soggetto sono necessarie le seguenti autorizzazioni:
-
Concedi la seguente autorizzazione per la risorsa per cui vuoi aggiornare il tipo di compatibilità:
managedkafka.config.update
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Aggiornare il tipo di compatibilità per un registro di schemi
Console
Per aggiornare il tipo di compatibilità per l'intero registro di schemi:
- Nella console Google Cloud , vai alla pagina Registri di schemi.
Viene visualizzato un elenco dei registri di schema nel tuo progetto.
- Fai clic sul nome del registro di schemi per cui vuoi aggiornare il tipo di compatibilità.
Viene visualizzata la pagina Dettagli registro schema.
- Nella sezione dei dettagli principali del registro, individua l'impostazione
Tipo di compatibilità e fai clic sull'icona Modifica accanto.
Viene visualizzata la pagina Modifica tipo di compatibilità.
- Dal menu a discesa Tipo di compatibilità, seleziona il valore.
- Fai clic su Salva.
gcloud
Per aggiornare il tipo di compatibilità per un registro di schemi, utilizza il
comando gcloud alpha managed-kafka schema-registries update.
gcloud alpha managed-kafka schema-registries update SCHEMA_REGISTRY_ID
--location=LOCATION
--compatibility=COMPATIBILITY_TYPE
SCHEMA_REGISTRY_ID: l'ID del registro degli schemi da aggiornare.LOCATION: la regione del registro degli schemi.COMPATIBILITY_TYPE: il nuovo tipo di compatibilità. I valori validi includonoBACKWARD,BACKWARD_TRANSITIVE,FORWARD,FORWARD_TRANSITIVE,FULL,FULL_TRANSITIVEoNONE.
Esempio: aggiorna il tipo di compatibilità del registro di schema test-registry nella regione us-central1 a FORWARD.
gcloud alpha managed-kafka schema-registries update test-registry
--location=us-central1
--compatibility=FORWARD
REST
Per aggiornare il tipo di compatibilità per un registro di schemi, invia una richiesta PUT all'API REST.
Per prima cosa, ottieni un token di accesso:
gcloud auth application-default print-access-token
Dopodiché, invia una richiesta PUT all'endpoint di configurazione del registro:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/config
Sostituisci i seguenti parametri di percorso:
PROJECT_ID: l'ID del tuo progetto Google Cloud.LOCATION: la regione in cui esiste il registro degli schemi.SCHEMA_REGISTRY_ID: l'ID del registro degli schemi.
Includi il seguente oggetto JSON nel corpo della richiesta:
{ "compatibility": "COMPATIBILITY_TYPE" }
Sostituisci COMPATIBILITY_TYPE con un valore valido, ad esempio NONE, BACKWARD, FORWARD o FULL.
In caso di esito positivo, l'API restituisce un codice di stato 200 OK.
Aggiornare il tipo di compatibilità per un soggetto
Console
Per aggiornare il tipo di compatibilità per una materia specifica:
- Nella console Google Cloud , vai alla pagina Registri di schemi.
- Fai clic sul nome del registro dello schema che contiene l'argomento.
Viene visualizzata la pagina Dettagli registro schema.
- Nella tabella Soggetti in questo registro di schema, fai clic sul nome del soggetto.
- Trova l'impostazione Tipo di compatibilità per la materia e fai clic sull'icona Modifica accanto.
Viene visualizzata la pagina Modifica tipo di compatibilità.
- Dal menu a discesa Tipo di compatibilità, seleziona il valore. La scelta di un valore qui sostituisce l'impostazione a livello di registro per questo argomento.
- Fai clic su Salva.
gcloud
Per aggiornare il tipo di compatibilità per un argomento, utilizza il comando
gcloud alpha managed-kafka schema-registries subject update.
gcloud alpha managed-kafka schema-registries subject update SUBJECT_ID
--schema-registry=SCHEMA_REGISTRY_ID
--location=LOCATION
--compatibility=COMPATIBILITY_TYPE
SUBJECT_ID: l'ID del soggetto da aggiornare.SCHEMA_REGISTRY_ID: l'ID del registro di schema che contiene l'argomento.LOCATION: la regione del registro degli schemi.COMPATIBILITY_TYPE: il nuovo tipo di compatibilità. I valori validi includonoBACKWARD,BACKWARD_TRANSITIVE,FORWARD,FORWARD_TRANSITIVE,FULL,FULL_TRANSITIVEoNONE.
Esempio: aggiorna il tipo di compatibilità del soggetto test-subject nel registro di schema test-registry nella regione us-central1 a FORWARD_TRANSITIVE.
gcloud alpha managed-kafka schema-registries subject update test-subject
--schema-registry=test-registry
--location=us-central1
--compatibility=FORWARD_TRANSITIVE
REST
Per aggiornare il tipo di compatibilità per un soggetto, invia una richiesta PUT all'API REST.
Per prima cosa, ottieni un token di accesso:
gcloud auth application-default print-access-token
Aggiorna la compatibilità per un soggetto nel contesto predefinito:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/config/SUBJECT_ID
Aggiorna la compatibilità per un soggetto in un contesto specifico:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/contexts/CONTEXT_ID/config/SUBJECT_ID
Sostituisci i seguenti parametri di percorso:
PROJECT_ID: l'ID del tuo progetto Google Cloud.LOCATION: la regione in cui esiste il registro degli schemi.SCHEMA_REGISTRY_ID: l'ID del registro degli schemi.SUBJECT_ID: l'ID del soggetto.CONTEXT_ID: l'ID del contesto (se applicabile).
Includi il seguente oggetto JSON nel corpo della richiesta:
{ "compatibility": "COMPATIBILITY_TYPE" }
Sostituisci COMPATIBILITY_TYPE con un valore valido, ad esempio FORWARD_TRANSITIVE.
Esempio: imposta la compatibilità del soggetto user_events su FORWARD_TRANSITIVE.
Richiesta a PUT https://managedkafka.googleapis.com/v1main/projects/test-project/locations/us-central1/schemaRegistries/test_registry/config/user_events
Con corpo:
{ "compatibility": "FORWARD_TRANSITIVE" }
In caso di esito positivo, l'API restituisce un codice di stato 200 OK.
Passaggi successivi
- Aggiornamento della modalità dello schema
- Creare un argomento e registrare gli schemi
- Visualizzare i dettagli di un registro di schemi