Questo documento mostra come eseguire il commit di una revisione dello schema per gli argomenti Pub/Sub.
Prima di iniziare
- Scopri come funzionano gli schemi Pub/Sub.
- Crea uno schema.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per eseguire il commit di una revisione dello schema e gestire gli schemi,
chiedi all'amministratore di concederti il ruolo IAM Editor Pub/Sub (roles/pubsub.editor
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per eseguire il commit di una revisione dello schema e gestire gli schemi. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per eseguire il commit di una revisione dello schema e gestire gli schemi sono necessarie le seguenti autorizzazioni:
-
Crea schema:
pubsub.schemas.create
-
Allega lo schema all'argomento:
pubsub.schemas.attach
-
Esegui il commit di una revisione dello schema:
pubsub.schemas.commit
-
Elimina uno schema o una revisione dello schema:
pubsub.schemas.delete
-
Ottieni uno schema o le revisioni dello schema:
pubsub.schemas.get
-
Elenca schemi:
pubsub.schemas.list
-
Revisioni dello schema dell'elenco:
pubsub.schemas.listRevisions
-
Esegui il rollback di uno schema:
pubsub.schemas.rollback
-
Convalida un messaggio:
pubsub.schemas.validate
-
Recupera il criterio IAM per uno schema:
pubsub.schemas.getIamPolicy
-
Configura il criterio IAM per uno schema:
pubsub.schemas.setIamPolicy
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Puoi concedere ruoli e autorizzazioni a entità come utenti, gruppi, domini o account di servizio. Puoi creare uno schema in un progetto e agganciarlo a un argomento in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.
Rivedi uno schema
Puoi eseguire il commit di una revisione dello schema utilizzando la console Google Cloud, l'interfaccia alla gcloud CLI, l'API Pub/Sub o le librerie client di Cloud.
Di seguito sono riportate alcune linee guida per eseguire il commit di una revisione dello schema:
Puoi rivedere uno schema entro vincoli specifici:
Per gli schemi Protocol Buffer, puoi aggiungere o rimuovere campi facoltativi. Non puoi aggiungere o eliminare altri campi. Inoltre, non puoi modificare alcun campo esistente.
Per gli schemi Avro, consulta la documentazione di Avro per le regole relative alla risoluzione dello schema. Una nuova revisione deve seguire le regole come se fosse sia lo schema del lettore che lo schema dello scrittore.
Uno schema può avere un massimo di 20 revisioni contemporaneamente. Se superi il limite, elimina una revisione dello schema prima di crearne un'altra.
A ogni revisione è associato un ID revisione univoco. L'ID revisione è un UUID di otto caratteri generato automaticamente.
Quando aggiorni l'intervallo di revisione o la revisione di uno schema utilizzato per la convalida degli argomenti, potrebbero essere necessari alcuni minuti prima che le modifiche diventino effettive.
Console
Per creare una revisione dello schema:
Nella console Google Cloud, vai alla pagina Schemi Pub/Sub.
Fai clic sull'ID schema di uno schema esistente.
Viene visualizzata la pagina Dettagli schema dello schema.
Fai clic su Crea revisione.
Viene visualizzata la pagina Crea revisione dello schema.
Apporta le modifiche necessarie.
Ad esempio, per lo schema di esempio in Avro che hai creato in Creare uno schema, puoi aggiungere un altro campo facoltativo chiamato
Price
come segue:{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false }, { "name": "Price", "type": "double", "default": "0.0" } ] }
Fai clic su Convalida definizione per verificare che la definizione dello schema sia corretta.
Puoi anche convalidare i messaggi per lo schema.
Fai clic su Test messaggio per testare un messaggio di esempio.
Nella finestra Test messaggio, seleziona un tipo di codifica del messaggio.
In Test message (Messaggio di test), inserisci un messaggio di test.
Ad esempio, di seguito è riportato un messaggio di esempio per lo schema di test. In questo esempio, seleziona Codifica dei messaggi come
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "Price":12, "InStock":true}
Fai clic su Test.
Fai clic su Commit per salvare lo schema.
gcloud
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Dove:
- SCHEMA_TYPE è
avro
oprotocol-buffer
. - SCHEMA_DEFINITION è un
string
contenente la definizione dello schema, formattata in base al tipo di schema scelto.
Puoi anche specificare la definizione dello schema nel file:
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Dove:
- SCHEMA_TYPE è
avro
oprotocol-buffer
. - SCHEMA_DEFINITION_FILE è un
string
contenente il percorso del file con la definizione dello schema, formattato in base al tipo di schema scelto.
REST
Per eseguire il commit di una revisione dello schema, invia una richiesta POST come la seguente:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:commit Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Specifica i seguenti campi nel corpo della richiesta:
{ "definition": SCHEMA_DEFINITION "type": SCHEMA_TYPE "name": SCHEMA_NAME }
Dove:
- SCHEMA_TYPE è
AVRO
oPROTOCOL_BUFFER
. - SCHEMA_DEFINITION è una stringa contenente la definizione dello schema, formattata in base al tipo di schema scelto.
- SCHEMA_NAME è il nome di uno schema esistente.
Il corpo della risposta deve contenere una rappresentazione JSON di una risorsa schema. Ad esempio:
{ "name": SCHEMA_NAME, "type": SCHEMA_TYPE, "definition": SCHEMA_DEFINITION "revisionId": REVISION_ID "revisionCreateTime": REVISION_CREATE_TIME }
Dove:
- REVISION_ID è l'ID generato dal server per la revisione.
- REVISION_CREATE_TIME è il timestamp ISO 8601 in cui è stata creata la revisione.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Avro
Proto
C++
Prima di provare questo esempio, segui le istruzioni di configurazione C++ riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C++.
Avro
Proto
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Avro
Proto
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Avro
Proto
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Avro
Proto
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Avro
Proto
Dopo aver eseguito il commit di una revisione dello schema, puoi visualizzare i dettagli della nuova revisione nella pagina Schemi.
Passaggi successivi
- Eliminare una revisione dello schema
- Elenca le revisioni di uno schema
- Eseguire il rollback di una revisione dello schema