Rozszerzenie Google Cloud Pub/Sub

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info

Wersja: 2.0.2

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

Te treści zawierają informacje o konfigurowaniu i używaniu tego rozszerzenia.

Wymagania wstępne

Zanim zaczniesz korzystać z rozszerzenia w ramach serwera proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:

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

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

  3. Wygeneruj klucz konta usługi za pomocą konsoli Google Cloud.

  4. Podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji użyj zawartości utworzonego pliku JSON z kluczem.

Informacje o Cloud Pub/Sub

Cloud Pub/Sub to usługa asynchronicznego przesyłania wiadomości w relacji wiele do wielu, która oddziela nadawców od odbiorców. Cloud Pub/Sub gwarantuje przesyłanie wiadomości charakteryzujące się krótkim czasem oczekiwania oraz trwałością, co pomaga programistom szybko integrować systemy hostowane w Google Cloud i poza nim.

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ść jako ciąg 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 przez tag <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"}

Wartość topic.message.messageId wynosi więc 165918654986954.

Wiadomość JSON

W tym przykładzie działanie publish publikuje wiadomość 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 przez tag <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"}

Wartość topic.message.messageId wynosi więc 165918654986954.

Działania

publikowanie

Publikuje wiadomość w temacie określonym w konfiguracji tego 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ć ciągu tekstowego lub sformatować wiadomość za pomocą JSON-a o własnej strukturze. Ciąg znaków lub JSON Brak Tak
customAttributes

Atrybuty niestandardowe, które chcesz dodać 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"}

Odwołanie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w proxy interfejsów API postępuj zgodnie z tymi instrukcjami.

Wspólne 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 publikować. Tę wartość możesz uzyskać z usługi Pub/Sub, np. w konsoli Google Cloud. Na przykład nazwa tematu może mieć postać projects/GCP-PROJECT-ID/topics/TOPIC-NAME Brak. Tak.
credentials Po wpisaniu w konsoli Apigee Edge jest to zawartość pliku klucza konta usługi. W przypadku wysyłania za pomocą interfejsu Management API jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.