Rozszerzenie Google Cloud Pub/Sub

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.5.1

publikować wiadomości w danym temacie w usłudze Google Cloud Pub/Sub,

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia.

Wymagania wstępne

Zanim użyjesz rozszerzenia z serwera proxy interfejsu API przy użyciu zasady ExtensionCallout, musisz:

  1. Utwórz temat Cloud Pub/Sub zgodnie z opisem w krótkim wprowadzeniu: korzystanie z konsoli.

  2. Gdy masz już temat, przyznaj uprawnienia do publikowania w swoim temacie Cloud Pub/Sub. Rolę roles/pubsub.publisher możesz na przykład używać do publikowania w tematach. Więcej informacji o rolach Cloud Pub/Sub znajdziesz w artykule Kontrola dostępu.

  3. Wygeneruj klucz dla konta usługi za pomocą konsoli GCP.

  4. Użyj zawartości wynikowego pliku JSON klucza podczas dodawania i konfigurowania rozszerzenia w dokumentacji konfiguracji.

Informacje o Cloud Pub/Sub

Cloud Pub/Sub zapewnia asynchroniczną komunikację typu „wiele do wielu”, która oddziela nadawców i odbiorców. Cloud Pub/Sub zapewnia trwałą komunikację i krótkie czasy oczekiwania, która pomaga programistom w szybkiej integracji systemów hostowanych w Google Cloud Platform i poza nią.

Jeśli dopiero zaczynasz korzystać z Cloud Pub/Sub, zapoznaj się z krótkimi wprowadzeniami w dokumentacji Cloud Pub/Sub.

Przykłady

Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud Pub/Sub za pomocą zasady ExtensionCallout.

SMS

W tym przykładzie działanie publish publikuje wiadomość w postaci prostego ciągu znaków w temacie określonym w konfiguracji rozszerzenia. Działanie publish zwraca identyfikator opublikowanej wiadomości w temacie, w którym została opublikowana, i zapisuje go w zmiennej określonej w tagu <Output>:

<?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>

Poniższa zasada Assign Message (Przypisz wiadomość) używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku odpowiedzi. Identyfikator wiadomości jest przechowywany we właściwości messageId zmiennej wyjściowej:

<?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>

Dane odpowiedzi są zwracane w formacie JSON:

{"messageId":"165918654986954"}

W związku z tym wartość pola topic.message.messageId wynosi 165918654986954.

Wiadomość JSON

W tym przykładzie działanie publish powoduje opublikowanie wiadomości w formacie JSON w temacie określonym w konfiguracji rozszerzenia. Działanie publish zwraca identyfikator opublikowanej wiadomości w temacie, w którym została opublikowana, i zapisuje go w zmiennej określonej w tagu <Output>:

<?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>

Poniższa zasada Assign Message (Przypisz wiadomość) używa wartości zmiennej przechowującej odpowiedź rozszerzenia do przypisania ładunku odpowiedzi. Identyfikator wiadomości jest przechowywany we właściwości messageId zmiennej wyjściowej:

<?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>

Dane odpowiedzi są zwracane w formacie JSON:

{"messageId":"165918654986954"}

W związku z tym wartość pola topic.message.messageId wynosi 165918654986954.

Działania

publikowanie

Publikuje wiadomość w temacie określonym w konfiguracji rozszerzenia.

Składnia

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

Przykład ciągu znaków

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

Przykład uporządkowanych danych JSON

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

Przykład atrybutów niestandardowych

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

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
wiadomość Wiadomość do opublikowania. Możesz użyć własnego ciągu znaków lub struktury swojej wiadomości w formacie JSON. Ciąg znaków lub JSON Brak Tak
customAttributes

Atrybuty niestandardowe, które mają zostać dodane do wiadomości w formularzu:

"customAttributes": {"attr1": "foo", "attr2": "bar"}.
Tablica JSON Brak Nie

Odpowiedź

Plik JSON zawierający identyfikator wiadomości opublikowanej w temacie. Na przykład:

{"messageId":"165918654986954"}

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek.

Typowe właściwości rozszerzeń

The following properties are present for every extension.

Property Description Default Required
name Name you're giving this configuration of the extension. None Yes
packageName Name of the extension package as given by Apigee Edge. None Yes
version Version number for the extension package from which you're configuring an extension. None Yes
configuration Configuration value specific to the extension you're adding. See Properties for this extension package None Yes

Właściwości tego pakietu rozszerzeń

Właściwość Opis Domyślny Wymagane
topic Temat, w którym chcesz opublikować film. Pobierz tę wartość z usługi Pub/Sub, na przykład z konsoli GCP dla tej usługi. Nazwa tematu może na przykład mieć postać projects/GCP-PROJECT-ID/topics/TOPIC-NAME Brak. Tak.
credentials Jeśli wpiszesz ją w konsoli Apigee Edge, będzie to zawartość Twojego pliku klucza konta usługi. W przypadku wysyłania przez interfejs API zarządzania jest to wartość zakodowana w formacie base64 generowana na podstawie pliku klucza konta usługi. Brak. Tak.