Cloud Pub/Sub 觸發條件

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

使用這個觸發條件,每當發布者在您選擇的主題中撰寫訊息時,您都可以執行整合作業。主題可以與整合項目位於同一個 Google Cloud 專案,也可以位於不同的 Google Cloud 專案。這個觸發程序執行時,也會將發布的訊息寫入 CloudPubSubMessage 輸出變數。您可以根據需求,在下游觸發條件或工作中,使用這個變數。

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

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

事前準備

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

  • 將「專案 IAM 管理員」 (roles/resourcemanager.projectIamAdmin) 指派給建立這項觸發條件的使用者。
  • 為整合專案啟用 Pub/Sub API。 Google Cloud
  • 如果 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. 在「主題 ID」欄位中,輸入專屬主題名稱。
    4. 按一下 [儲存]
如要進一步瞭解如何使用 IAM 角色管理存取權,請參閱「存取控管」。

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

新增 Cloud Pub/Sub 觸發條件

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

    前往 Application Integration

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

    系統隨即會顯示「整合清單」頁面,列出 Google Cloud 專案中可用的所有整合功能。

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

    如要建立新的整合項目:

    1. 在「建立整合」窗格中輸入名稱和說明。
    2. 選取整合作業的區域。
    3. 選取整合的服務帳戶。如要變更或更新整合的服務帳戶詳細資料,請隨時前往整合工具列的「整合摘要」窗格。
    4. 點選「建立」

    新建立的整合作業會在整合編輯器中開啟。

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

設定 Cloud Pub/Sub 觸發條件

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

  1. 在「Pub/Sub topic」(Pub/Sub 主題) 欄位中,指定觸發條件應監聽的主題,格式如下:
    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 角色
Application Integration 的預設服務帳戶: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 Invoker (roles/integrations.integrationInvoker)

觸發條件輸出

針對每個事件,Cloud Pub/Sub 觸發條件會產生 CloudPubSubMessage 輸出變數,您可以在下游工作中使用。變數採用 JSON 格式,且具有 PubsubMessage 結構。

為整合服務建立附帶篩選器的訂閱項目

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

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

    前往「訂閱」頁面

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

    新建立的訂閱項目會觸發整合作業,並篩選郵件。

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

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

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

在 Application Integration 中設定 Pub/Sub 觸發程序並嘗試發布整合時,如果 Pub/Sub API 受 VPC Service Controls 中的服務範圍保護,系統會無法建立必要的 Pub/Sub 訂閱項目。

服務安全防護範圍會強制執行資源周圍的安全邊界,而這些政策可能會阻止 Application Integration 在發布整合時建立必要的 Pub/Sub 訂閱項目。 Google Cloud

如要在這些情況下順利設定及發布 Pub/Sub 觸發條件,請按照下列步驟操作:

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

      前往「VPC Service Controls」頁面

    2. 選取包含要用於整合的 Pub/Sub 主題的 Google Cloud 專案。
    3. (選用) 如果所選專案未設定任何存取權政策,系統會顯示「在當前範圍內找不到虛擬私有雲服務範圍」訊息。在這種情況下,請按一下「切換至機構範圍」,前往機構層級。
    4. 在「VPC Service Controls」頁面的資料表中,按一下要修改的服務範圍名稱。
    5. 在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)
    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. 在「Service perimeter details」(service perimeter 詳細資料) 頁面中,按一下「Edit」(編輯)
    4. 在「受限制的服務」窗格中,按一下「新增服務」
    5. 篩選並選取 pubsub.googleapis.com 服務。
    6. 按一下「Add selected services」(新增所選服務)
    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 訊息的專屬 ID。

  • Cloud Pub/Sub 觸發條件不支援訊息排序。Cloud Pub/Sub 觸發程序建立的訂閱項目會停用 Pub/Sub 訊息排序功能,且無法啟用。
  • 取消發布整合項目時,系統不會刪除 Pub/Sub 訂閱項目,以免遺失訊息。不過,如果您刪除已發布的版本或整合的所有版本,Pub/Sub 訂閱項目也會一併刪除。

配額與限制

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

後續步驟