Wyświetlasz dokumentację Apigee Edge.
  Otwórz dokumentację Apigee X. info
Wersja: 1.5.1
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:
Utwórz temat Cloud Pub/Sub zgodnie z instrukcjami w artykule Krótkie wprowadzenie: korzystanie z konsoli.
Gdy utworzysz temat, przyznaj uprawnienia do publikowania w temacie Cloud Pub/Sub. Możesz na przykład używać roli
roles/pubsub.publisherdo publikowania w tematach. Więcej informacji o rolach w Cloud Pub/Sub znajdziesz w artykule Kontrola dostępu.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.
SMS
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.
Komunikat 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>
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.
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 w formacie 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ć 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. |