Questo documento mostra come creare schemi per gli argomenti Pub/Sub.
Prima di iniziare
Prima di creare uno schema, completa i seguenti passaggi:
- Scopri di più sugli argomenti e sul flusso di lavoro di pubblicazione.
- Scopri come funzionano gli schemi Pub/Sub.
- Crea un argomento.
Autorizzazioni e ruoli richiesti
Per ottenere le autorizzazioni necessarie per creare e gestire gli schemi,
chiedi all'amministratore di concederti il ruolo IAM
Editor Pub/Sub (roles/pubsub.editor
) per il tuo progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire gli schemi. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare e gestire gli schemi sono necessarie le seguenti autorizzazioni:
-
Crea schema:
pubsub.schemas.create
-
Collega schema all'argomento:
pubsub.schemas.attach
-
Esegui il commit di una revisione dello schema:
pubsub.schemas.commit
-
Elimina uno schema o una revisione di uno schema:
pubsub.schemas.delete
-
Visualizza le revisioni di uno schema o di uno 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
-
Ottieni il criterio IAM per uno schema:
pubsub.schemas.getIamPolicy
-
Configura il criterio IAM per uno schema:
pubsub.schemas.setIamPolicy
Potresti anche essere in grado di ottenere queste autorizzazioni con i 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 collegarlo a un argomento in un altro progetto. Assicurati di disporre delle autorizzazioni necessarie per ogni progetto.
Crea uno schema
Puoi creare uno schema utilizzando la console Google Cloud, gcloud CLI, l'API Pub/Sub o le librerie client di Cloud. Di seguito sono riportate alcune linee guida per creare uno schema:
Affinché uno schema funzioni con Pub/Sub, devi definire un solo tipo di primo livello. Le istruzioni di importazione che fanno riferimento ad altri tipi non sono supportate.
Puoi associare lo stesso schema a più argomenti.
Puoi verificare manualmente se un messaggio viene convalidato in base a uno schema.
Console
Per creare uno schema:
Nella console Google 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 il nome di uno schema, consulta le Linee guida per il nome di un argomento, di una sottoscrizione o di uno snapshot.
Per Tipo di schema, seleziona Avro o buffer di protocollo.
Scopri di più sui tipi di schema.
Nel campo Definizione schema, inserisci la definizione di Avro o di buffer di protocollo 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. Messaggi di prova nel passaggio successivo.
(Facoltativo) Puoi verificare se i messaggi con lo schema corretto vengono pubblicati.
Fai clic su Testa messaggio.
Nella finestra Messaggio di prova, seleziona un tipo di Codifica del messaggio.
Nel 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 del messaggio come
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "InStock":true}
Esci dalla pagina del messaggio di test.
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 di schema. Ad esempio:
{ "name": SCHEMA_NAME, "type": SCHEMA_TYPE, "definition": SCHEMA_DEFINITION "revisionId": REVISION_ID "revisionCreateTime": REVISION_CREATE_TIME }
Dove:
- REVISION_ID è l'ID della revisione generato dal server.
- 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++ riportate nella Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ Pub/Sub.
Avro
Proto
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Pub/Sub.
Avro
Proto
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go Pub/Sub.
Avro
Proto
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Avro
Proto
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Pub/Sub.
Avro
Proto
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Pub/Sub.
Avro
Proto
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione PHP nella Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP Pub/Sub.
Avro
Proto
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Pub/Sub.
Avro
Proto
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate in Guida rapida sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Avro
Proto
Dopo aver creato uno schema, puoi visualizzarne i dettagli nella pagina Schemi.
Puoi associare lo schema a un argomento.