Nachrichten anhand eines Schemas validieren

In diesem Dokument erfahren Sie, wie Sie Schemas für Pub/Sub-Themen validieren.

Sie können prüfen, ob Nachrichten einem bestimmten Schema entsprechen, bevor oder nachdem Sie eine Schemaressource erstellt haben. So wird sichergestellt, dass die Nachrichten, die Sie über ein Thema senden möchten, das mit einem Schema verknüpft ist, tatsächlich übereinstimmen, bevor Sie das Schema anwenden.

Hinweise

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor) für Ihr Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Validieren und Verwalten von Schemanachrichten 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 Validieren und Verwalten von Schemanachrichten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Schemanachrichten zu validieren und zu verwalten:

  • Schema erstellen: pubsub.schemas.create
  • Schema an das Thema anhängen: pubsub.schemas.attach
  • Schemaüberarbeitung festschreiben: pubsub.schemas.commit
  • So löschen Sie ein Schema oder eine Schemaüberarbeitung: pubsub.schemas.delete
  • So rufen Sie ein Schema oder Schemaüberarbeitungen ab: pubsub.schemas.get
  • Listenschemata: pubsub.schemas.list
  • Schemaüberarbeitungen auflisten: pubsub.schemas.listRevisions
  • Rollback für ein Schema ausführen: pubsub.schemas.rollback
  • Nachricht prüfen: 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 Hauptkonten wie Nutzern, Gruppen, Domains oder Dienstkonten Rollen und Berechtigungen zuweisen. Sie können ein Schema in einem Projekt erstellen und einem Thema in einem anderen Projekt zuordnen. Sie müssen die erforderlichen Berechtigungen für jedes Projekt haben.

Nachrichten anhand eines Schemas validieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Schemas auf.

    Zu „Schemas“

    Die Liste der Schemas wird angezeigt.

  2. Klicken Sie auf die Schema-ID eines vorhandenen Schemas.

    Die Seite Schemadetails für das Schema wird geöffnet.

  3. Klicken Sie im Bereich Überarbeitungen auf die Überarbeitung, für die Sie eine Mitteilung validieren möchten.

  4. Klicken Sie im Bereich Details auf Testnachricht.

  5. Wählen Sie im Fenster Testnachricht eine Nachrichtencodierung aus.

  6. Geben Sie im Feld Nachricht eine Testnachricht ein.

  7. Klicken Sie auf Test.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Verwenden Sie den Befehl gcloud pubsub schemas validate-message, um eine Nachricht anhand eines Schemas zu validieren.

    gcloud pubsub schemas validate-message --message=MESSAGE \
        --message-encoding=MESSAGE_ENCODING \
        (--schema-name=SCHEMA_NAME | \
        --type=TYPE \
        (--definition=DEFINITION | \
        --definition-file=DEFINITION_FILE))
    

    Ersetzen Sie Folgendes:

    • MESSAGE: Nachricht, die anhand des Schemas validiert werden soll

    • MESSAGE_ENCODING: Codierung der Nachricht. Geben Sie einen der folgenden Werte an: binary oder json.

    • SCHEMA_NAME: Name oder vollständiger Pfad eines vorhandenen Schemas.

    • TYPE: Typ des Inline-Schemas. Geben Sie einen der folgenden Werte an: avro oder protocol-buffer.

    • DEFINITION: Inline-Schemadefinition.

    • DEFINITION_FILE: Datei mit der Schemadefinition.

Nächste Schritte