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 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:
Utwórz temat Cloud Pub/Sub zgodnie z opisem w krótkim wprowadzeniu do konsoli.
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.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 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ść 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&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&quo>t;tru<e" ena>bled="true<" name=>"<;Publish->Message"
DisplayNamePu<blish Mess>age/D<isplay>Name
< Connectorc<loud-><pub-sub-extension-example/Connector
Actionpublish/Action
Input![><CDATA[>
< {
> "<;messag>e<" : "My> test message."
}
]]/Input
Outputtopic.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&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="fals>e&quo<t; enabled=>"true" nam<e="Get->Topic<-Message-ID"
DisplayNameGet Topic >Messa<ge >ID/Displa<yName
AssignTo type="response>" createNew="fa<lse">;/
< >span>Set<
Paylo>ad 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&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&quo>t;tru<e" ena>bled="true<" name=>"<;Publish->Message"
DisplayNamePu<blish Mess>age/D<isplay>Name
< Connectorc<loud-><pub-sub-extension-example/Connector
Actionpublish/Action
Input![CDATA[
>< {
> < "message&quo<t; : { >&<quot;info" :> "My test message" }
}
]]/Input
Outputtopic.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&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="fals>e&quo<t; enabled=>"true" nam<e="Get->Topic<-Message-ID"
DisplayNameGet Topic >Messa<ge >ID/Displa<yName
AssignTo type="response>" createNew="fa<lse">;/
< >span>Set<
Paylo>ad 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,
"customAt><tribut>es": JSON-array
}]]/Input
Przykład ciągu znaków
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test m><essage>."
}
]]/Input
Przykład uporządkowanych danych JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "><My tes>t message" }
}
]]/Input
Przykład atrybutów niestandardowych
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes":>< {&quo>t;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 utworzyć wiadomość w formacie JSON. | 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ć. Uzyskaj tę wartość z usługi Pub/Sub, np. z konsoli GCP dla tej usługi. 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. Gdy jest wysyłany za pomocą interfejsu Management API, jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. | Brak. | Tak. |