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:
Utwórz temat Cloud Pub/Sub zgodnie z opisem w krótkim wprowadzeniu: korzystanie z konsoli.
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.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. |