您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
版本:1.2.0
將訊息發布至 Google Cloud Pub/Sub 服務中的主題。
這項內容提供設定及使用這項擴充功能的參考資料。
必要條件
如要透過 API Proxy 使用這項擴充功能,請務必先完成下列步驟:
如快速入門導覽課程:使用控制台所述,建立 Cloud Pub/Sub 主題。
取得主題後,請授予權限,以便發布至 Cloud Pub/Sub 主題。舉例來說,您可以使用
roles/pubsub.publisher角色發布至主題。如要進一步瞭解 Cloud Pub/Sub 角色,請參閱「存取權控管」。
關於 Cloud Pub/Sub
Cloud Pub/Sub 提供多對多的非同步訊息傳遞功能,可分離傳送者與接收者。Cloud Pub/Sub 提供低延遲且持久耐用的訊息傳遞功能,可協助開發人員快速整合在 Google Cloud Platform 中與外部代管的系統。
如果您剛開始使用 Cloud Pub/Sub,請參閱 Cloud Pub/Sub 說明文件中的快速入門導覽課程。
範例
下列範例說明如何使用 ExtensionCallout 政策,設定支援 Cloud Pub/Sub 擴充功能動作。
發布訊息
在本範例中,publish 動作會將簡單訊息發布至擴充功能設定中指定的主題。publish 動作會傳回發布訊息的主題 ID。
<?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.id</Output>
</ConnectorCallout>
下列「指派訊息」政策會使用儲存擴充功能回應的變數值,指派回應酬載。
<?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.id}</Payload>
</Set>
</AssignMessage>
在本例中,回應資料會以 JSON 格式傳回,如下所示。
{"messageId":"165918654986954"}
動作
publish
將訊息發布至此擴充功能設定中指定的主題。
語法
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish"
}]]></Input>
範例
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
要求參數
| 參數 | 說明 | 類型 | 預設 | 必填 |
|---|---|---|---|---|
| 訊息 | 要發布的訊息。 | 字串 | 無。 | 是。 |
回應
JSON,內含發布至主題的訊息 ID。例如:
{"messageId":"165918654986954"}
設定參考資料
設定及部署這個擴充功能,以便在 API Proxy 中使用時,請按照下列步驟操作。
常見的擴充功能屬性
每個擴充功能都有下列屬性。
| 屬性 | 說明 | 預設 | 必要 |
|---|---|---|---|
name |
您要為這項擴充功能設定的名稱。 | 無 | 相容 |
packageName |
Apigee Edge 指定的擴充功能套件名稱。 | 無 | 相容 |
version |
擴充功能的擴充功能套件版本號碼。 | 無 | 相容 |
configuration |
您要新增的擴充功能專屬的設定值。請參閱「這個擴充功能套件的屬性」一文 | 無 | 相容 |
這個擴充套件的屬性
| 屬性 | 說明 | 預設 | 必填 |
|---|---|---|---|
topic |
要發布的主題。從 Pub/Sub 服務取得這個值,例如從服務的 GCP 控制台取得。舉例來說,主題名稱可能採用 projects/GCP-PROJECT-ID/topics/TOPIC-NAME 格式 |
無。 | 是。 |
credentials |
在 Apigee Edge 控制台中輸入時,這是服務帳戶金鑰檔案的內容。透過 Management API 傳送時,這是從服務帳戶金鑰檔案產生的 Base64 編碼值。 | 無。 | 是。 |