本文說明如何設定 Pub/Sub 通知,監控工作和工作狀態的變化。您可以將通知用於各種用途,例如本文件說明如何將通知串流至 BigQuery 資料表,以分析資料。如要進一步瞭解 Pub/Sub 通知的用途,請參閱 Pub/Sub 說明文件中的「選擇訂閱類型」。
如要將工作的所有資訊匯出至 BigQuery,請參閱匯出工作資訊。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
- 如要為 Batch 工作設定 Pub/Sub 通知,請按照下列步驟操作:
-
Enable the Pub/Sub API.
-
如要取得設定 Pub/Sub 主題和訂閱項目所需的權限,請要求管理員授予您專案的 Pub/Sub 編輯者 (
roles/pubsub.editor
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
- 其他規定會因您決定設定的訂閱類型而異。舉例來說,如要將通知串流至 BigQuery 資料表並進行分析,請務必執行下列操作:
-
Enable the BigQuery API.
-
為確保 Pub/Sub 服務帳戶具備將 Pub/Sub 通知串流至 BigQuery 的必要權限,請管理員在 Pub/Sub 主題的專案中,授予 Pub/Sub 服務帳戶「BigQuery 資料編輯者」(
roles/bigquery.dataEditor
) IAM 角色。如要進一步瞭解如何指派這個角色,請參閱將 BigQuery 角色指派給 Pub/Sub 服務帳戶。
- 請確認要透過 BigQuery 分析通知的使用者具備必要權限。
如要在 BigQuery 中查詢 Pub/Sub 通知,請要求管理員授予下列 IAM 角色:
-
BigQuery 資料表專案的 BigQuery 工作使用者 (
roles/bigquery.jobUser
) -
BigQuery 資料檢視者 (
roles/bigquery.dataViewer
) BigQuery 資料表
-
BigQuery 資料表專案的 BigQuery 工作使用者 (
-
設定 Batch 的 Pub/Sub 通知
Batch 支援工作和工作狀態變更的 Pub/Sub 通知,可用於警報、可觀測性或分析。
如要為一或多個 Batch 作業設定 Pub/Sub 通知,請完成下列各節所述步驟:
為 Batch 設定 Pub/Sub 通知後,您可以視需要設定每項工作,以便傳送特定通知。您可以隨時在工作或工作狀態變更時收到通知,也可以篩選特定工作或工作狀態的通知。請注意,Pub/Sub 不會針對工作或工作進入的第一個狀態傳送通知,只會在工作從一個狀態移至另一個狀態時傳送通知。如要進一步瞭解可為 Pub/Sub 通知設定的屬性,請參閱「建立及執行傳送 Pub/Sub 狀態通知的工作」。
為 Batch 建立或找出 Pub/Sub 主題
建立新的 Pub/Sub 主題,或找出要用於 Batch 通知的現有 Pub/Sub 主題。
如本文後續章節所述,管理員必須授予額外權限,作業才能將通知傳送至這個 Pub/Sub 主題。
建立訂閱項目,接收及使用通知
如要接收及使用發布至 Pub/Sub 主題的訊息,您必須為該主題建立至少一個訂閱項目。
舉例來說,您可以將主題設為將通知串流至 BigQuery。接著,當您執行會發布通知的工作時,即可在 BigQuery 表格中接收及分析通知。詳情請參閱本文中的範例:在 BigQuery 中接收及使用 Pub/Sub 通知。
如要進一步瞭解訂閱項目和其他訂閱選項,請參閱 Pub/Sub 說明文件中的「訂閱項目總覽」。
設定工作,將通知傳送至主題
如要設定工作,將 Pub/Sub 通知傳送至主題,請按照「建立及執行工作,傳送 Pub/Sub 狀態通知」頁面的操作說明進行。具體來說,請按照下列步驟操作:
- 如果尚未取得權限,請要求管理員授予作業將通知傳送至 Pub/Sub 主題所需的所有權限。這類權限列於該頁面的「必要角色」部分。
- 建立並執行工作,方法是定義工作的
notifications
欄位,啟用 Pub/Sub 通知。
範例:在 BigQuery 中接收及使用 Pub/Sub 通知
以下各節說明在 BigQuery 中接收及使用 Pub/Sub 通知的範例用途。設定訂閱項目,將主題的 Pub/Sub 通知串流至 BigQuery 表格,即可保留工作和工作狀態變更的記錄,並查詢這些變更。
設定將通知串流至 BigQuery 的訂閱項目
設定 Pub/Sub 訂閱項目,將主題中的通知串流至 BigQuery 資料表,方法如下:
如果您還沒有,請建立或找出 Batch 適用的 Pub/Sub 主題。
如果沒有,請建立 BigQuery 資料集。
建立 BigQuery 資料表,並採用下列結構定義:
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
建立串流至 BigQuery 的 Pub/Sub 訂閱項目,並指定下列選項:
- 主題:選取 Batch 的 Pub/Sub 主題。
- 專案:選取包含 BigQuery 資料表的專案。
- 資料集:選取包含 BigQuery 資料表的資料集。
- 資料表:選取您在上一個步驟中建立的資料表。
- 選取「使用主題結構定義」。
- 選取「寫入中繼資料」。
現在,每當 Pub/Sub 通知傳送至該主題時,Pub/Sub 就會將通知串流至 BigQuery 資料表。設定工作以傳送 Pub/Sub 通知後,您就可以在 BigQuery 中分析通知。
在 BigQuery 中分析通知
為主題設定 BigQuery 資料表訂閱項目,並執行將通知傳送至主題的工作後,您就能在 BigQuery 中分析通知。如要在 BigQuery 中分析通知,請對 BigQuery 資料表的 attributes
欄執行查詢。可查詢的屬性取決於您是否為工作或職缺設定通知。
您可以查詢工作通知的下列屬性:
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
您可以查詢工作通知的下列屬性:
JobUID
JobName
NewJobState
Region
Type
舉例來說,下列查詢會顯示與每則通知相關聯的 JobUID
:
select attributes.JobUID from `example-table`
後續步驟
- 瞭解如何建立及執行傳送 Pub/Sub 狀態通知的作業。
- 進一步瞭解 Pub/Sub 訂閱項目。
- 進一步瞭解 BigQuery 數據分析。