Questo documento mostra come creare schemi per gli argomenti Pub/Sub.
Prima di iniziare
Prima di creare uno schema, completa le seguenti operazioni:
- Scopri di più sugli argomenti e sul flusso di lavoro di pubblicazione.
- Comprendere il funzionamento degli schemi Pub/Sub.
- Crea un argomento.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per creare e gestire 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 Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire gli schemi. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e gestire 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
-
Recuperare uno schema o le revisioni dello schema:
pubsub.schemas.get
-
Elenca schemi:
pubsub.schemas.list
-
Elenca le revisioni dello schema:
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 service account. Puoi creare uno schema in un progetto e collegarlo a un argomento che si trova in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.
Crea uno schema
Puoi creare uno schema utilizzando la Trusted Cloud console, gcloud CLI, l'API Pub/Sub o le librerie client di Cloud.
Prima di creare uno schema, rivedi queste informazioni importanti sugli schemi.
Console
Per creare uno schema:
Nella console Trusted Cloud , vai alla pagina Schemi Pub/Sub.
Fai clic su Crea schema.
Nel campo ID schema, inserisci un ID per lo schema.
Per le linee guida per la denominazione di uno schema, vedi Linee guida per la denominazione di un argomento, una sottoscrizione o uno snapshot.
In Tipo di schema, seleziona Avro o Protocol Buffer.
Scopri di più sui tipi di schema.
Nel campo Definizione dello schema, inserisci la definizione Avro o Protocol Buffer per lo schema.
Ad esempio, ecco uno schema di esempio in Avro.
{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false } ] }
(Facoltativo) Fai clic su Convalida definizione per verificare se la definizione dello schema è corretta.
Il controllo di convalida non verifica la compatibilità dello schema con i messaggi da pubblicare. Testa i messaggi nel passaggio successivo.
(Facoltativo) Puoi verificare se i messaggi con lo schema corretto vengono pubblicati.
Fai clic su Test message (Messaggio di prova).
Nella finestra Messaggio di test, seleziona un tipo di Codifica messaggio.
Nel campo Corpo del messaggio, inserisci un messaggio di prova.
Fai clic su Test.
Ad esempio, ecco un messaggio di esempio per lo schema di test. In questo esempio, seleziona Codifica messaggio come
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "InStock":true}
Esci dalla pagina del messaggio di prova.
Fai clic su Crea per salvare lo schema.
gcloud
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Dove:
- SCHEMA_TYPE è
avro
oprotocol-buffer
. - SCHEMA_DEFINITION è un
string
contenente la definizione dello schema, formattato in base al tipo di schema scelto.
Puoi anche specificare la definizione dello schema in un file:
gcloud pubsub schemas create 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 creare uno schema, invia una richiesta POST come la seguente:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID 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 }
Dove:
- SCHEMA_TYPE è
avro
oprotocol-buffer
. - SCHEMA_DEFINITION è una stringa contenente la definizione dello schema, formattata in base al tipo di schema scelto.
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.
C++
Prima di provare questo esempio, segui le istruzioni di configurazione di C++ nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C++.
Avro
Proto
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
Avro
Proto
Vai
L'esempio seguente utilizza la versione principale della libreria client Go Pub/Sub (v2). Se utilizzi ancora la libreria v1, consulta la guida alla migrazione alla v2. Per visualizzare un elenco di esempi di codice della versione 1, consulta gli esempi di codice ritirati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Avro
Proto
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java di Pub/Sub.
Avro
Proto
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, 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 nella Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Avro
Proto
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub PHP.
Avro
Proto
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Avro
Proto
Ruby
Il seguente esempio utilizza la libreria client Ruby Pub/Sub v3. Se utilizzi ancora la libreria v2, consulta la guida alla migrazione alla v3. Per visualizzare un elenco di esempi di codice Ruby v2, consulta gli esempi di codice ritirati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Ruby.
Avro
Proto
Una volta creato uno schema, puoi visualizzarne i dettagli nella pagina Schemi.
Puoi associare lo schema a un argomento.