Rozszerzenie Google Cloud Pub/Sub

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

Wersja: 2.0.0

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

Te treści zawierają informacje na temat konfigurowania i używania tego rozszerzenia.

Wymagania wstępne

Zanim użyjesz rozszerzenia z serwera proxy interfejsu API przy użyciu zasad dotyczących rozszerzeń, musisz:

  1. Utwórz temat Cloud Pub/Sub zgodnie z instrukcjami w artykule Krótkie wprowadzenie: korzystanie z konsoli.

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

  3. Wygeneruj klucz konta usługi w konsoli GCP.

  4. Użyj zawartości utworzonego pliku klucza JSON podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji.

Informacje o usłudze Cloud Pub/Sub

Cloud Pub/Sub umożliwia asynchroniczne przesyłanie wiadomości w trybie wiele do wielu, co pozwala oddzielić nadawców od odbiorców. Cloud Pub/Sub zapewnia trwałe przesyłanie wiadomości o krótkim czasie oczekiwania, co pomaga programistom szybko integrować systemy hostowane w Google Cloud Platform i poza nią.

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

Przykłady

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

W tym przykładzie działanie publish publikuje wiadomość jako prosty 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>

Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi. Identyfikator wiadomości jest przechowywany w 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"}

Dlatego wartość topic.message.messageId wynosi 165918654986954.

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>

Podana niżej zasada Przypisz wiadomość używa wartości zmiennej przechowującej odpowiedź rozszerzenia, aby przypisać ładunek odpowiedzi. Identyfikator wiadomości jest przechowywany w 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"}

Dlatego wartość topic.message.messageId wynosi 165918654986954.

Działania

publikowanie

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

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish" | JSON-structured-data,
  "customAttributes": JSON-array
}]]></Input>
<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>
<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" }
  }
]]></Input>
<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ć prostego ciągu tekstowego lub ustrukturyzować wiadomość za pomocą pliku JSON. Ciąg znaków lub JSON Brak Tak
customAttributes

Atrybuty niestandardowe, które możesz dodać do wiadomości w formularzu:

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

Odpowiedź

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

{"messageId":"165918654986954"}

Informacje o konfiguracji

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

Właściwości wspólne 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ć. Uzyskaj tę wartość z usługi Pub/Sub, na przykład z konsoli GCP. Nazwa tematu może mieć na przykład postać projects/GCP-PROJECT-ID/topics/TOPIC-NAME Brak. Tak.
credentials Gdy wpiszesz te dane w konsoli Apigee Edge, będą one odpowiadać treści pliku klucza konta usługi. Gdy jest wysyłany za pomocą interfejsu API zarządzania, jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.