Google Cloud Pub/Sub 擴充功能

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

版本:1.2.0

將訊息發布至 Google Cloud Pub/Sub 服務中的主題。

這項內容提供設定及使用這項擴充功能的參考資料。

必要條件

如要透過 API Proxy 使用這項擴充功能,請務必先完成下列步驟:

  1. 快速入門導覽課程:使用控制台所述,建立 Cloud Pub/Sub 主題。

  2. 取得主題後,請授予權限,以便發布至 Cloud Pub/Sub 主題。舉例來說,您可以使用 roles/pubsub.publisher 角色發布至主題。如要進一步瞭解 Cloud Pub/Sub 角色,請參閱「存取權控管」。

  3. 使用 GCP 主控台為服務帳戶產生金鑰

  4. 使用產生的金鑰 JSON 檔案內容,透過設定參考資料新增及設定擴充功能。

關於 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 編碼值。 無。 是。