查看 Application Integration 支援的連接器

Cloud Pub/Sub 觸發條件

Cloud Pub/Sub 觸發條件可讓您根據 Pub/Sub 中介軟體中的事件執行整合作業。

使用這個觸發條件,您就能在發布者將訊息寫入所選主題時執行整合作業。主題可以位於與整合作業相同的 Google Cloud 專案中,也可以位於不同的 Google Cloud 專案中。這個觸發事件執行時,也會將已發布的訊息寫入 CloudPubSubMessage 輸出變數。您可以根據需求,在下游觸發事件或工作中使用這個變數。

如要瞭解如何使用應用程式整合和 Cloud Pub/Sub 觸發條件建立整合範例,請參閱「監聽 Cloud Pub/Sub 主題並傳送電子郵件」一文。

使用這個觸發條件,您就能在發布者將訊息寫入所選主題時執行整合作業。執行這個觸發條件時,系統也會將已發布的訊息寫入 CloudPubSubMessage 輸出變數。您可以根據需求,在下游觸發事件或工作中使用這個變數。

事前準備

請務必先在 Google Cloud 專案中執行下列任務,再設定 Cloud Pub/Sub 觸發事件

  • 將「專案 IAM 管理員」 (roles/resourcemanager.projectIamAdmin) 指派給建立此觸發條件的使用者。
  • 針對已整合的 Google Cloud 專案啟用 Pub/Sub API
  • 如果 Pub/Sub API 受到服務範圍保護,請務必定義下列 IAM 角色,以便管理這些服務範圍:

    • Access Context Manager 管理員 (roles/accesscontextmanager.policyAdmin)
    • Access Context Manager 編輯器 (roles/accesscontextmanager.policyEditor)
    • Access Context Manager 讀取者 (roles/accesscontextmanager.policyReader)

  • 確認您有 Pub/Sub 主題。如要建立新的 Pub/Sub 主題,請按照下列步驟操作:
    1. 前往 Cloud 控制台的 Pub/Sub 主題頁面。

      前往 Pub/Sub 主題頁面

    2. 按一下 [Create a topic] (建立主題)
    3. 在「Topic ID」欄位中,提供專屬主題名稱。
    4. 按一下 [儲存]
如要進一步瞭解如何使用身分與存取權管理角色管理存取權,請參閱「存取權控管」一文。

如要進一步瞭解如何為主體授予角色,請參閱「授予、變更及撤銷存取權」一文。

新增 Cloud Pub/Sub 觸發條件

如要將 Cloud Pub/Sub 觸發條件新增至新整合或現有整合,請按照下列步驟操作:
  1. 前往 Google Cloud 控制台的「Application Integration」頁面。

    前往「應用程式整合」

  2. 在導覽選單中,按一下「整合」

    系統隨即會顯示「Integrations List」頁面,列出 Google Cloud 專案中可用的所有整合項目。

  3. 選取現有的整合,或按一下「建立整合」來建立新的整合。

    如果您要建立新的整合功能:

    1. 在「Create Integration」窗格中輸入名稱和說明。
    2. 選取整合作業的區域。
    3. 選取要用於整合的服務帳戶。您隨時可以透過整合工具列的 「整合摘要」窗格,變更或更新整合作業的服務帳戶詳細資料。
    4. 按一下 [建立]。

    新建立的整合服務會在整合服務編輯器中開啟。

  4. 整合服務編輯器的導覽列中,按一下「觸發條件」,即可查看可用的觸發條件清單。
  5. 按一下並將 Cloud Pub/Sub 觸發條件元素放入設計工具。

設定 Cloud Pub/Sub 觸發事件

按一下整合編輯器中的 Cloud Pub/Sub 觸發條件元素,即可查看觸發條件設定窗格,然後執行下列工作:

  1. 在「Pub/Sub topic」欄位中,使用以下格式指定觸發條件應聆聽的主題:
    projects/PROJECT_ID/topics/TOPIC_ID

    如要查看 Google Cloud 專案中所有可用的主題,請參閱「主題」中的「主題名稱」欄。您也可以從其他 Google Cloud 專案中選取主題。

    替換下列內容:
    • PROJECT_ID:建立主題的 Google Cloud 專案。
    • TOPIC_ID:Pub/Sub 主題的 ID。主題可以位於與整合項目相同的 Google Cloud 專案中,也可以位於不同的 Google Cloud 專案中。
  2. 選取要用來叫用整合項目的服務帳戶。您也可以選擇在整合中建立的設定變數。設定變數的值必須是服務帳戶電子郵件地址,格式如下:SERVICE_ACCOUNT_NAME@project-id.iam.gserviceaccount.com。例如:application-integration-invoke@project123.iam.gserviceaccount.com

    如要瞭解如何建立設定變數,請參閱「建立變數」一文;如要瞭解如何建立服務帳戶,請參閱「建立服務帳戶」一文。

    如果您選擇設定變數,請務必將必要角色授予該設定變數參照的服務帳戶。如要進一步瞭解如何授予角色,請參閱「必要的 IAM 角色」。

    如果沒有服務帳戶,請按一下「服務帳戶」清單中的「建立新帳戶」,建立服務帳戶。

根據預設,訂閱項目的到期時間選項會設為 never expire。如要將到期日設為其他值,請在 Google Cloud 控制台的「Pub/Sub 訂閱項目」頁面中編輯訂閱項目。

服務帳戶所需的 IAM 角色

選取服務帳戶後,按一下「授予」,系統會自動為各種服務帳戶提供下列角色。

服務帳戶 已授予 IAM 角色
應用程式整合的預設服務帳戶:service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
  • Pub/Sub 編輯者 (roles/pubsub.editor)
  • 服務帳戶使用者 (roles/iam.serviceAccountUser)

如果 Pub/Sub 主題的 Google Cloud 專案與整合的 Google Cloud專案不同,預設服務帳戶需要在主題的 Google Cloud 專案中具備 Pub/Sub 編輯者角色。

您為這個觸發條件選取的服務帳戶 Application Integration 叫用者 (roles/integrations.integrationInvoker)

觸發輸出

針對每個事件,Cloud Pub/Sub 觸發事件會產生 CloudPubSubMessage 輸出變數,可用於後續工作。這個變數採用 JSON 格式,並具有 PubsubMessage 結構。

為整合建立含篩選條件的訂閱項目

如果您想為 Pub/Sub 訂閱設定篩選器,以便在整合中處理特定事件,請按照下列步驟操作:

  1. 發布已設定 Cloud Pub/Sub 觸發條件的整合項目。這個步驟會在整合專案中建立訂閱項目。
  2. 在 Google Cloud 控制台中,前往「訂閱項目」頁面。

    前往「訂閱項目」頁面

  3. 開啟訂閱項目,並複製所有詳細資料,包括訂閱名稱。
  4. 刪除現有的訂閱項目。
  5. 建立新訂閱項目,並加入您在步驟 3 複製的已刪除訂閱項目的所有詳細資料 (包括訂閱項目名稱),以及在新訂閱項目中加入篩選器

    新建立的訂閱項目會觸發與篩除訊息的整合作業。

「服務水準協議」排除條款

Cloud Pub/Sub 觸發條件取決於 Pub/Sub 產品。由於此依附元件是應用程式整合的外部元件,因此只有在 Cloud Pub/Sub 觸發事件成功啟動 active 整合作業時,應用程式整合服務水準協議 (SLA) 的條款和細則才適用。

將 Pub/Sub 觸發條件與 VPC Service Controls 搭配使用

在應用程式整合中設定 Pub/Sub 觸發事件,並嘗試發布整合時,如果 Pub/Sub API 受到 VPC Service Controls 中的服務範圍保護,則無法建立必要的 Pub/Sub 訂閱。

服務範圍會在您的 Google Cloud 資源周圍強制執行安全性邊界,這些政策可防止應用程式整合在發布整合時建立必要的 Pub/Sub 訂閱。

如要在這些情況下成功設定及發布 Pub/Sub 觸發條件,請執行下列步驟:

  1. 從服務範圍中暫時移除 Pub/Sub API:
    1. 在 Google Cloud 控制台中,前往「VPC Service Controls」頁面。

      前往「VPC Service Controls」頁面

    2. 選取 Google Cloud 專案,該專案包含要在整合中使用的 Pub/Sub 主題。
    3. (選用) 如果未為所選專案設定存取權政策,系統會顯示「在目前的範圍內找不到虛擬私有雲服務範圍」No VPC Service Perimeters found in current scope 訊息。在這種情況下,請按一下「切換至機構範圍」,前往機構層級。
    4. 在「VPC Service Controls」頁面的資料表中,按一下您要修改的服務範圍名稱。
    5. 在「服務範圍詳細資料」頁面中,按一下「編輯」
    6. 在「Restricted services」(受限制的服務) 窗格中,篩選並選取 pubsub.googleapis.com 服務。
    7. 按一下 「移除所選項目」
    8. 按一下 [儲存]。在確認對話方塊中,按一下「確認」,即可從 VPC Service Controls 服務範圍中移除 Pub/Sub API。
  2. 在整合中新增並設定 Pub/Sub 觸發條件
  3. 發布整合功能
  4. 將 Pub/Sub API 重新加入服務範圍:
    1. 前往「VPC Service Controls」頁面。

      前往「VPC Service Controls」頁面

    2. 在「VPC Service Controls」頁面的資料表中,按一下先前修改的服務範圍。
    3. 在「服務範圍詳細資料」頁面中,按一下「編輯」
    4. 在「受限制的服務」窗格中,按一下 「新增服務」
    5. 篩選並選取 pubsub.googleapis.com 服務。
    6. 按一下「新增所選服務」
    7. 按一下 [儲存]。在確認對話方塊中,按一下「確認」,將 Pub/Sub API 重新加入 VPC Service Controls 服務範圍。

定價

您不需要建立連接器,即可使用 Cloud Pub/Sub 觸發條件和 Salesforce 觸發條件。不過,如果您使用連接器任務連結 Pub/Sub 或 Salesforce,系統會依連接器使用量向您收費。如需定價資訊,請參閱「Application Integration 定價」。

注意事項

  • Pub/Sub 訊息的大小上限為 10 MB。如要瞭解 Pub/Sub 的所有限制,請參閱「Pub/Sub 配額與限制」。
  • Pub/Sub 可能會將相同訊息寫入主題不只一次。如要瞭解 Pub/Sub 的這項行為,請參閱「至少一次的傳送」。因此,您必須將整合設計為冪等,以免訊息寫入主題的次數超過一次。

    郵件標頭中的 message_id 欄位可用於識別 Pub/Sub 訊息。

  • 如果您取消發布整合,Pub/Sub 訂閱項目不會遭到刪除,以免訊息遺失。不過,如果您刪除已發布的版本或整合項目的所有整合版本,Pub/Sub 訂閱項目也會一併刪除。

配額與限制

如要進一步瞭解配額和限制,請參閱「配額與限制」。

後續步驟