Google Cloud Pub/Sub-Erweiterung

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Version: 1.5.1

Nachrichten zu einem Thema im Google Cloud Pub/Sub-Dienst veröffentlichen

In diesem Artikel erfahren Sie, wie Sie diese Erweiterung konfigurieren und verwenden.

Voraussetzungen

Bevor Sie die Erweiterung mithilfe der ExtensionCallout-Richtlinie von einem API-Proxy verwenden, müssen Sie Folgendes tun:

  1. Erstellen Sie ein Cloud Pub/Sub-Thema, wie in Kurzanleitung: Console verwenden beschrieben.

  2. Sobald Sie das Thema haben, erteilen Sie die Berechtigung zur Veröffentlichung in Ihrem Cloud Pub/Sub-Thema. Sie können beispielsweise mit der Rolle roles/pubsub.publisher in Themen veröffentlichen. Weitere Informationen zu Cloud Pub/Sub-Rollen finden Sie unter Zugriffssteuerung.

  3. Verwenden Sie die GCP Console, um einen Schlüssel für das Dienstkonto zu generieren.

  4. Verwenden Sie den Inhalt der resultierenden JSON-Schlüssel-JSON-Datei beim Hinzufügen und Konfigurieren der Erweiterung mithilfe der Konfigurationsreferenz.

Informationen zu Cloud Pub/Sub

Cloud Pub/Sub bietet asynchrones m:n-Messaging, das Absender und Empfänger entkoppelt. Cloud Pub/Sub ist ein beständiger Nachrichtendienst mit niedriger Latenz, der es Entwicklern ermöglicht, auf der Google Cloud Platform oder extern gehostete Systeme schnell zu integrieren.

Wenn Sie Cloud Pub/Sub gerade erst kennenlernen, sehen Sie sich die Kurzanleitungen in der Cloud Pub/Sub-Dokumentation an.

Samples

Die folgenden Beispiele veranschaulichen, wie die Unterstützung für Cloud Pub/Sub-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfiguriert wird.

SMS-Nachricht

In diesem Beispiel wird mit der Aktion publish eine Nachricht als einfacher String zu einem Thema veröffentlicht, das in der Konfiguration der Erweiterung angegeben ist. Die Aktion publish gibt die ID der veröffentlichten Nachricht in dem Thema zurück, in dem sie veröffentlicht wurde, und schreibt sie in die im Tag <Output> angegebene Variable:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : "My test message."
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

Die folgende Richtlinie Nachricht zuweisen verwendet den Wert der Variablen, mit denen die Antwort der Erweiterung gespeichert wird, um die Antwortnutzlast zuzuweisen. Die Nachrichten-ID wird im Attribut messageId der Ausgabevariablen gespeichert:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

Die Antwortdaten werden im JSON-Format zurückgegeben:

{"messageId":"165918654986954"}

Daher beträgt der Wert von topic.message.messageId 165918654986954.

JSON-Nachricht

In diesem Beispiel wird mit der Aktion publish eine Nachricht im JSON-Format unter einem Thema veröffentlicht, das in der Konfiguration der Erweiterung angegeben ist. Die Aktion publish gibt die ID der veröffentlichten Nachricht in dem Thema zurück, in dem sie veröffentlicht wurde, und schreibt sie in die im Tag <Output> angegebene Variable:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : { "info" : "My test message" }
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

Die folgende Richtlinie Nachricht zuweisen verwendet den Wert der Variablen, mit denen die Antwort der Erweiterung gespeichert wird, um die Antwortnutzlast zuzuweisen. Die Nachrichten-ID wird im Attribut messageId der Ausgabevariablen gespeichert:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

Die Antwortdaten werden im JSON-Format zurückgegeben:

{"messageId":"165918654986954"}

Daher beträgt der Wert von topic.message.messageId 165918654986954.

Aktionen

publish

Veröffentlicht eine Nachricht zu dem Thema, das in der Konfiguration dieser Erweiterung angegeben ist.

Syntax

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish" | JSON-structured-data,
  "customAttributes": JSON-array
}]]></Input>

String-Beispiel

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

Beispiel für strukturierte JSON-Daten

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" }
  }
]]></Input>

Beispiel für benutzerdefinierte Attribute

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" },
      "customAttributes": {"attr1": "foo", "attr2": "bar"}
  }
]]></Input>

Anfrageparameter

Parameter Beschreibung Typ Standard Erforderlich
Nachricht Die zu veröffentlichende Nachricht. Sie können einen einfachen String verwenden oder Ihre Nachricht mit JSON Ihres eigenen Designs strukturieren. String oder JSON Keine Ja
customAttributes

Benutzerdefinierte Attribute, die im Formular der Nachricht hinzugefügt werden sollen:

"customAttributes": {"attr1": "foo", "attr2": "bar"}.
JSON-Array Keine Nein

Antwort

JSON mit der ID der Nachricht, wie sie im Thema veröffentlicht wurde. Beispiel:

{"messageId":"165918654986954"}

Konfigurationsreferenz

Verwenden Sie Folgendes, wenn Sie diese Erweiterung zur Verwendung in API-Proxys konfigurieren und bereitstellen.

Häufige Erweiterungseigenschaften

Für jede Erweiterung sind die folgenden Eigenschaften vorhanden.

Attribut Beschreibung Standard Erforderlich
name Der Name, den Sie dieser Konfiguration der Erweiterung zuweisen. Ja
packageName Name des Erweiterungspakets, wie von Apigee Edge angegeben. Ja
version Versionsnummer für das Erweiterungspaket, von dem Sie eine Erweiterung konfigurieren. Ja
configuration Konfigurationswert speziell für die Erweiterung, die Sie hinzufügen. Weitere Informationen finden Sie unter Eigenschaften für dieses Erweiterungspaket. Ja

Eigenschaften dieses Erweiterungspakets

Property Beschreibung Standard Erforderlich
topic Das Thema, in dem die Veröffentlichung erfolgen soll. Rufen Sie diesen Wert aus dem Pub/Sub-Dienst ab, z. B. aus der GCP Console für den Dienst. Der Themenname könnte beispielsweise das Format projects/GCP-PROJECT-ID/topics/TOPIC-NAME haben. Keine. Ja.
credentials Bei Eingabe in die Apigee Edge-Konsole ist dies der Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein base64-codierter Wert, der aus der Schlüsseldatei des Dienstkontos generiert wird. Keine. Ja.