In diesem Dokument erfahren Sie, wie Sie Schemas für Pub/Sub-Themen erstellen.
Hinweis
Bevor Sie ein Schema erstellen, führen Sie die folgenden Schritte aus:
- Informationen zu Themen und zum Veröffentlichungs-Workflow
- Informationen zur Funktionsweise von Pub/Sub-Schemas
- Thema erstellen.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub-Bearbeiter (roles/pubsub.editor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von Schemas benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Verwalten von Schemas erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Schemas zu erstellen und zu verwalten:
-
Schema erstellen:
pubsub.schemas.create -
Schema an Thema anhängen:
pubsub.schemas.attach -
Schemaversion festschreiben:
pubsub.schemas.commit -
Schema oder Schemaversion löschen:
pubsub.schemas.delete -
Schema oder Schemaversionen abrufen:
pubsub.schemas.get -
Schemas auflisten:
pubsub.schemas.list -
Schemaversionen auflisten:
pubsub.schemas.listRevisions -
Schema zurücksetzen:
pubsub.schemas.rollback -
Nachricht validieren:
pubsub.schemas.validate -
IAM-Richtlinie für ein Schema abrufen:
pubsub.schemas.getIamPolicy -
Konfigurieren Sie die IAM-Richtlinie für ein Schema:
pubsub.schemas.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie können Rollen und Berechtigungen Prinzipalen wie Nutzern, Gruppen, Domains oder Dienstkonten zuweisen. Sie können ein Schema in einem Projekt erstellen und es an ein Thema anhängen, das sich in einem anderen Projekt befindet. Achten Sie darauf, dass Sie die erforderlichen Berechtigungen für jedes Projekt haben.
Schema erstellen
Sie können ein Schema über die Cloud de Confiance Console, die gcloud CLI, die Pub/Sub API oder die Cloud-Clientbibliotheken erstellen.
Lesen Sie sich vor dem Erstellen eines Schemas diese wichtigen Informationen zu Schemas durch.
Console
So erstellen Sie ein Schema:
Rufen Sie in der Cloud de Confiance Console die Pub/Sub-Schemas Seite auf.
Klicken Sie auf Schema erstellen.
Geben Sie im Feld Schema-ID eine ID für Ihr Schema ein.
Richtlinien zum Benennen eines Schemas finden Sie unter Richtlinien für die Benennung eines Themas, Abos oder Snapshots.
Wählen Sie als Schematyp entweder Avro oder den Protokollpuffer aus.
Weitere Informationen zu Schematypen.
Geben Sie im Feld Schemadefinition die Avro- oder Protocol Buffer-Definition für Ihr Schema ein.
Hier ist beispielsweise ein Beispielschema in Avro.
{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false } ] }Optional: Klicken Sie auf Definition validieren , um zu prüfen, ob die Schemadefinition korrekt ist.
Bei der Validierung wird nicht geprüft, ob das Schema mit den zu veröffentlichenden Nachrichten kompatibel ist. Testen Sie Nachrichten im nächsten Schritt.
Optional: Sie können testen, ob Nachrichten mit dem richtigen Schema veröffentlicht werden.
Klicken Sie auf Nachricht testen.
Wählen Sie im Fenster Nachricht testen einen Typ für die Nachrichtenkodierung aus.
Geben Sie im Feld Nachrichtentext eine Testnachricht ein.
Klicken Sie auf Testen.
Hier ist beispielsweise eine Beispielnachricht für das Testschema. Wählen Sie in diesem Beispiel die Nachrichtenkodierung
JSONaus.{"ProductName":"GreenOnions", "SKU":34543, "InStock":true}Beenden Sie die Seite „Nachricht testen“.
Klicken Sie auf Erstellen , um das Schema zu speichern.
gcloud
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Hierbei gilt:
- SCHEMA_TYPE ist entweder
avrooderprotocol-buffer. - SCHEMA_DEFINITION ist ein
string, der die Definition von dem Schema enthält, formatiert gemäß dem ausgewählten Schematyp.
Sie können die Schemadefinition auch in einer Datei angeben:
gcloud pubsub schemas create SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Hierbei gilt:
- SCHEMA_TYPE ist entweder
avrooderprotocol-buffer. - SCHEMA_DEFINITION_FILE ist ein
string, der den Pfad zur Datei mit der Definition des Schemas enthält, formatiert gemäß dem ausgewählten Schematyp.
REST
Senden Sie zum Erstellen eines Schemas eine POST-Anfrage wie die diese:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas?schemaId=SCHEMA_ID Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Geben Sie im Anfragetext die folgenden Felder an:
{ "definition": SCHEMA_DEFINITION, "type": SCHEMA_TYPE }
Hierbei gilt:
- SCHEMA_TYPE ist entweder
avrooderprotocol-buffer. - SCHEMA_DEFINITION ist ein String, der die Definition des Schemas enthält, formatiert gemäß dem ausgewählten Schematyp.
Der Antworttext sollte eine JSON-Darstellung einer Schemaressource enthalten. Beispiel:
{
"name": SCHEMA_NAME,
"type": SCHEMA_TYPE,
"definition": SCHEMA_DEFINITION,
"revisionId": REVISION_ID,
"revisionCreateTime": REVISION_CREATE_TIME
}
Hierbei gilt:
- REVISION_ID ist die vom Server generierte ID für die Version.
- REVISION_CREATE_TIME ist der ISO 8601-Zeitstempel, zu dem die Version erstellt wurde.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
Avro
Proto
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C# API.
Avro
Proto
Go
Im folgenden Beispiel wird die Hauptversion der Go Pub/Sub-Clientbibliothek (Version 2) verwendet. Wenn Sie noch die Version 1-Bibliothek verwenden, siehe den Migrationsleitfaden zu Version 2. Eine Liste der Codebeispiele für Version 1 finden Sie unter Veraltete Codebeispiele.
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Avro
Proto
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Avro
Proto
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Node.js in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Avro
Proto
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Node.js in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Avro
Proto
PHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub PHP API.
Avro
Proto
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Avro
Proto
Ruby
Im folgenden Beispiel wird die Ruby Pub/Sub-Clientbibliothek Version 3 verwendet. Wenn Sie noch die Version 2-Bibliothek verwenden, lesen Sie den Migrationsleitfaden zu Version 3. Eine Liste der Codebeispiele für Ruby Version 2 finden Sie unter Veraltete Codebeispiele.
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Avro
Proto
Nachdem ein Schema erstellt wurde, können Sie die Details des Schemas auf der Schemas Seite aufrufen.
Sie können das Schema mit einem Thema verknüpfen.