本文說明如何設定 Knowledge Catalog (舊稱 Dataplex Universal Catalog) 中繼資料變更動態消息,以便在 Knowledge Catalog 內的中繼資料建立、更新或刪除時,透過 Pub/Sub 接收通知。
如要進一步瞭解中繼資料變更動態饋給,請參閱中繼資料變更動態饋給總覽。
事前準備
熟悉 Pub/Sub 和 Dataplex API。
-
啟用 Dataplex API 和 Pub/Sub API。
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。 建立 Pub/Sub 主題來接收通知。詳情請參閱「建立主題」。
安裝
gcloud。請務必設定gcloud的簡短別名。設定
gcurl的別名。這會建立包含驗證權杖的捷徑,並為 API 要求設定 JSON 內容類型:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'設定
DATAPLEX_API變數:DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"更改下列內容:
PROJECT_ID:已啟用 Dataplex API 的專案 IDLOCATION:工作執行的位置,例如us-central1、europe-west3或asia-south1
必要角色和權限
如要設定中繼資料變更記錄,請確認您和 Knowledge Catalog 服務帳戶具備必要的 IAM 角色和權限。
使用者角色和權限
如要取得匯出中繼資料及存取中繼資料變更動態消息訊息所需的權限,請要求管理員在專案或機構中授予您下列 IAM 角色:
-
匯出中繼資料:
Dataplex 項目群組匯出者 (
roles/dataplex.entryGroupExporter) -
存取中繼資料變更動態消息訊息:
Pub/Sub 訂閱者 (
roles/pubsub.subscriber)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備匯出中繼資料,以及存取中繼資料變更動態饋給訊息所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要匯出中繼資料及存取中繼資料變更動態消息訊息,您必須具備下列權限:
-
匯出中繼資料:
-
專案的
dataplex.metadataFeeds.create -
dataplex.entryGroups.export,適用於定義動態消息範圍的資源 (機構、專案或項目群組) -
專案的
resourcemanager.projects.get -
專案的
resourcemanager.projects.list
-
專案的
-
存取中繼資料變更動態消息訊息:
-
pubsub.subscriptions.consume訂閱項目 -
pubsub.topics.attachSubscription主題
-
Knowledge Catalog 服務帳戶角色和權限
為確保 Knowledge Catalog 服務帳戶具備發布中繼資料變更動態消息訊息的必要權限,請要求管理員在 Pub/Sub 主題中,將 Pub/Sub 發布者 (roles/pubsub.publisher) 和 Pub/Sub 檢視者 (roles/pubsub.viewer) IAM 角色授予 Knowledge Catalog 服務帳戶。
這個預先定義的角色具備 pubsub.topics.publish 和 pubsub.topics.get 權限,可發布中繼資料變更動態消息訊息。
管理員或許還可透過自訂角色或其他預先定義的角色,將這項權限授予 Knowledge Catalog 服務帳戶。
將權限授予 Knowledge Catalog 服務帳戶
啟用 Dataplex API 時,系統會建立 Knowledge Catalog 服務代理程式。您可以透過電子郵件 ID 識別服務代理程式:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
其中 PROJECT_NUMBER 是啟用 Dataplex API 的專案編號。
Knowledge Catalog 服務帳戶需要能夠將訊息發布至 Pub/Sub 主題,並擷取主題中繼資料。如要授予這些權限,請在 Pub/Sub 主題中,將 Pub/Sub 發布者角色 (roles/pubsub.publisher) 和 Pub/Sub 檢視者角色 (roles/pubsub.viewer) 授予服務帳戶:
gcloud
執行 gcloud pubsub topics add-iam-policy-binding 指令:
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.viewer"
更改下列內容:
TOPIC_ID:Pub/Sub 主題的 ID,中繼資料變更動態消息訊息會發布至該主題。PROJECT_NUMBER:服務帳戶所在的 Knowledge Catalog 專案專案編號。
控制台
前往 Google Cloud 控制台的 Pub/Sub「Topics」(主題) 頁面。
選取用於中繼資料動態消息通知的主題,然後視需要按一下「顯示資訊面板」。
在「權限」分頁中,按一下「新增主體」。
在「新增主體」欄位中,輸入 Knowledge Catalog 服務帳戶:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com。在「指派角色」欄位中,選取「Pub/Sub 發布者」。
按一下「新增其他角色」,然後選取「Pub/Sub 檢視者」。
按一下 [儲存]。
建立中繼資料變更動態饋給
如要控管哪些變更會產生通知,您可以設定中繼資料變更記錄,監控特定資源。方法是指定範圍,例如整個機構、特定專案或特定項目群組。範圍可讓您定義要監控「哪些」資源,而篩選器則可進一步精確定義 Knowledge Catalog「何時」傳送通知。
詳情請參閱「中繼資料變更動態消息」。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 C# 設定說明操作。詳情請參閱 Knowledge Catalog C# API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Knowledge Catalog Go API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Knowledge Catalog Java API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Knowledge Catalog Node.js API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Knowledge Catalog Python API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要建立中繼資料變更動態饋給,請使用 projects.locations.metadataFeeds.create 方法。
機構範圍
執行下列指令,建立監控整個機構的元資料變更記錄:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"organizationLevel": true
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
更改下列內容:
PROJECT_ID_PUBSUB:Pub/Sub 主題所在的專案 ID,例如example-projectTOPIC_ID:中繼資料變更動態消息訊息發布至的 Pub/Sub 主題 ID,例如example-topicFEED_ID:您要建立的中繼資料變更動態消息 ID,例如example-feed
專案範圍
執行下列指令,建立監控特定專案的中繼資料變更記錄:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
更改下列內容:
PROJECT_ID_PUBSUB:Pub/Sub 主題所在的專案 ID,例如example-projectTOPIC_ID:中繼資料變更動態消息訊息發布至的 Pub/Sub 主題 ID,例如example-topicFEED_ID:您要建立的中繼資料變更動態消息 ID,例如example-feed
項目群組範圍
執行下列指令,建立監控特定項目群組的中繼資料變更動態消息:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"entryGroups": [
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_1",
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
更改下列內容:
PROJECT_ID_PUBSUB:Pub/Sub 主題所在的專案 ID,例如example-projectLOCATION:要建立動態饋給的位置,例如us-central1ENTRY_GROUP_ID:要監控的項目群組 ID,例如example-entry-groupTOPIC_ID:中繼資料變更動態消息訊息發布至的 Pub/Sub 主題 ID,例如example-topicFEED_ID:您要建立的中繼資料變更動態消息 ID,例如example-feed
已套用篩選器
執行下列指令,建立含有篩選器的中繼資料變更動態消息 (依項目類型篩選):
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"filter": {
"entryTypes": [
"projects/PROJECT_ID/locations/global/entryTypes/bigquery-table"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
更改下列內容:
PROJECT_ID_PUBSUB:Pub/Sub 主題所在的專案 ID,例如example-projectTOPIC_ID:中繼資料變更動態消息訊息發布至的 Pub/Sub 主題 ID,例如example-topicFEED_ID:您要建立的中繼資料變更動態消息 ID,例如example-feed
回應:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataplex.v1.OperationMetadata",
"createTime": "2023-10-02T15:01:23Z",
"target": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
查看中繼資料變更動態消息
您可以查看中繼資料變更動態消息的詳細資料。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 C# 設定說明操作。詳情請參閱 Knowledge Catalog C# API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Knowledge Catalog Go API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Knowledge Catalog Java API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Knowledge Catalog Node.js API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Knowledge Catalog Python API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要查看中繼資料變更動態消息,請使用 projects.locations.metadataFeeds.get 方法。
執行下列指令:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
更改下列內容:
FEED_ID:您要查看的中繼資料變更動態消息 ID,例如example-feed
列出中繼資料變更動態饋給
您可以列出專案和位置資訊中的中繼資料變更動態消息。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 C# 設定說明操作。詳情請參閱 Knowledge Catalog C# API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Knowledge Catalog Go API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Knowledge Catalog Java API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Knowledge Catalog Node.js API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Knowledge Catalog Python API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要列出中繼資料變更動態消息,請使用 projects.locations.metadataFeeds.list 方法。
執行下列指令:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
更新中繼資料變更記錄動態饋給
您可以更新現有中繼資料變更動態饋給的範圍或篩選器。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 C# 設定說明操作。詳情請參閱 Knowledge Catalog C# API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Knowledge Catalog Go API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Knowledge Catalog Java API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Knowledge Catalog Node.js API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Knowledge Catalog Python API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要更新中繼資料變更動態饋給,請使用 projects.locations.metadataFeeds.patch 方法。
執行下列指令,更新中繼資料變更動態消息,移除項目類型篩選器:
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
更改下列內容:
FEED_ID:您要更新的中繼資料變更動態消息 ID,例如example-feed
刪除中繼資料變更動態消息
如果不再需要接收通知,可以刪除中繼資料變更動態消息。
刪除中繼資料變更動態饋給後,動態饋給就不會再將新的中繼資料變更發布至 Pub/Sub 主題。不過,這不會刪除主題或與動態饋給相關聯的訂閱項目。如果不再需要這些項目,請手動刪除。
刪除動態消息或訂閱項目之前,請確認訂閱者應用程式已處理 Pub/Sub 訂閱項目中的所有未處理訊息。
C#
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 C# 設定說明操作。詳情請參閱 Knowledge Catalog C# API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Knowledge Catalog Go API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Knowledge Catalog Java API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Knowledge Catalog Node.js API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Knowledge Catalog 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Knowledge Catalog Python API 參考文件。
如要向 Knowledge Catalog 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要刪除中繼資料變更動態饋給,請使用 projects.locations.metadataFeeds.delete 方法。
執行下列指令:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
更改下列內容:
FEED_ID:要刪除的中繼資料變更動態消息 ID,例如example-feed
接收通知訊息
設定中繼資料變更記錄後,當發生中繼資料變更時,Knowledge Catalog 會將訊息發布至指定的 Pub/Sub 主題。如要使用這些訊息,請為該主題建立 Pub/Sub 訂閱項目。
舉例來說,您可以建立提取訂閱項目,並使用 Google Cloud CLI 查看訊息:
建立訂閱項目:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID更改下列內容:
SUBSCRIPTION_ID:要建立的訂閱 IDTOPIC_ID:中繼資料變更動態消息訊息發布至其中的 Pub/Sub 主題 ID。
從訂閱項目中提取訊息:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10更改下列內容:
SUBSCRIPTION_ID:要從中提取訊息的訂閱項目 ID
如要進一步瞭解如何處理 Pub/Sub 訊息,請參閱「從提取訂閱項目接收訊息」。如要瞭解訊息格式,請參閱「資料酬載」。