Entpacken der Nutzlast für Pub/Sub-Push-Abos

Beim Erstellen Ihres Pub/Sub-Systems kann das Entpacken der Nutzlast Ihnen helfen, eine Verbindung zu anderen Systemen herzustellen, die nicht alle Systemanforderungen einer Standard-Pub/Sub-Push-Endpunktimplementierung erfüllen.

Einige mögliche Anwendungsfälle für das Entpacken der Nutzlast:

  • Sie möchten keinen Pub/Sub-spezifischen Code zum Parsen von Nachrichten für Ihre HTTP-Push-Endpunkte schreiben.
  • Sie möchten Pub/Sub-Nachrichtenmetadaten lieber als HTTP-Header anstelle der Metadaten im HTTP-POST-Textkörper empfangen.
  • Sie möchten Pub/Sub-Nachrichten senden und die Pub/Sub-Metadaten ausschließen, z. B. beim Senden von Daten an eine Drittanbieter-API.

Funktionsweise des Entpackens der Nutzlast

Das Entpacken der Nutzlast ist eine Funktion, mit der alle Nachrichtenmetadaten aus Pub/Sub-Nachrichten entfernt werden, mit Ausnahme der Nachrichtendaten. Durch das Senden von Rohdaten der Nachricht können Abonnenten die Nachricht verarbeiten, ohne die Systemanforderungen von Pub/Sub erfüllen zu müssen.

  • Beim Entpacken der Nutzlast werden die Nachrichtendaten direkt als HTTP-Textkörper gesendet.
  • Ohne das Entpacken der Nutzlast liefert Pub/Sub ein JSON-Objekt, das mehrere Nachrichtenmetadatenfelder und ein Nachrichtendatenfeld enthält. In diesem Fall muss das JSON geparst werden, um die Nachrichtendaten abzurufen und dann base64-decodiert zu werden.

Metadaten schreiben

Nachdem Sie das Entpacken der Nutzlast aktiviert haben, können Sie die Option Metadaten schreiben verwenden, mit der zuvor entfernte Nachrichtenmetadaten in den Anfrageheader eingefügt werden.

  • Metadaten schreiben aktiviert Nachrichtenmetadaten werden wieder in den Anfrageheader eingefügt. Außerdem werden die decodierten Rohdaten der Nachricht gesendet.
  • Metadaten schreiben deaktiviert Sendet nur die decodierten Rohdaten der Nachricht.

Das Schreiben von Metadaten wird über Pub/Sub, das Google Cloud CLI Argument --push-no-wrapper-write-metadata, und die API-Eigenschaft NoWrapper verfügbar gemacht. Standardmäßig ist dieser Wert null.

Hinweis