Rozszerzenie Google Cloud Pub/Sub

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

Wersja: 1.5.2

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ń

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak

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.