本文說明要求者、核准者和工作流程管理員,如何在 Knowledge Catalog (舊稱 Dataplex Universal Catalog) 管理治理要求。
事前準備
如要使用控管工作流程,請確認您已啟用必要的 API,且核准者和管理員具備必要的 Identity and Access Management (IAM) 角色和權限。
啟用 Dataplex API (如果尚未啟用)。
啟用 API 所需的角色
您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
必要的角色
如要取得管理治理要求的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
核准或拒絕資料產品存取要求:
- Dataplex 資料產品編輯者 (
roles/dataplex.dataProductsEditor) - Dataplex 資料產品管理員 (
roles/dataplex.dataProductsAdmin)
- Dataplex 資料產品編輯者 (
-
查看並核准中繼資料變更要求:
- Dataplex Catalog 管理員 (
roles/dataplex.catalogAdmin) - Dataplex 工作流程核准者 (
roles/dataplex.workflowApprover)
- Dataplex Catalog 管理員 (
-
查看及編輯建立的要求:Dataplex 變更要求擁有者 (
roles/dataplex.changeRequestOwner) -
查看及編輯擴充代理建立的要求:Dataplex Catalog 管理員 (
roles/dataplex.catalogAdmin) -
查看所有要求,並刪除任何狀態的要求:
- Dataplex 工作流程管理員 (
roles/dataplex.workflowAdmin) - Dataplex Catalog 管理員 (
roles/dataplex.catalogAdmin)
- Dataplex 工作流程管理員 (
-
設定核准者電子郵件通知:
- Dataplex Catalog 管理員 (
roles/dataplex.catalogAdmin) - Dataplex Catalog 編輯者 (
roles/dataplex.catalogEditor) - Dataplex 詞彙表擁有者 (
roles/dataplex.glossaryOwner)
- Dataplex Catalog 管理員 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要進一步瞭解角色和權限,請參閱「Knowledge Catalog IAM 角色」。
以要求者身分管理要求
要求者可以提出變更要求,例如要求存取資料產品或提議變更中繼資料。提交要求後,您可以監控進度、查看要求詳細資料、編輯待處理要求的詳細資料,或在核准者採取行動前刪除處於 NEW 狀態的要求。
查看建立的要求
如要查看您建立的要求或檢查特定要求,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「My Requests」(我的要求) 分頁標籤,即可查看過去和待處理的要求清單。
REST
如要列出您建立的要求,請使用 changeRequests.list 方法:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests?filter=author=USER_EMAIL"
如要查看特定要求,請使用 changeRequests.get 方法:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。USER_EMAIL:您的電子郵件地址。CHANGE_REQUEST_ID:要求的專屬 ID。
如果是批次中繼資料變更要求,請檢查回應欄位,找出要求的建立方式:
- 使用者提交的要求:
author是要求者的電子郵件地址,batchChangeMetadataRequest.description.job則未設定。 - 擴充代理產生的生成要求:
author是擴充代理服務帳戶,batchChangeMetadataRequest.description.job.name則設為擴充執行 ID。
編輯要求
如果待處理要求處於 NEW 或 FAILED 狀態,您可以使用 REST API 更新要求。更新處於 FAILED 狀態的要求,會將其狀態重設為 NEW,以便核准者再次審查。誰可以編輯中繼資料變更要求,取決於要求的建立方式:
- 使用者提交的要求:只有原始作者可以傳送
PATCH要求,更新理由或要求酬載。 - 擴充代理程式產生的要求:除了作者之外,審查者和核准者也可以在要求處於
NEW或FAILED狀態時傳送PATCH要求,以便管理批次,例如修改建議的面向值,或從changes陣列中移除項目。author欄位仍是擴充代理服務帳戶。
如要更新待處理的變更要求,請使用 changeRequests.patch 方法。
如要只更新要求理由,請傳送下列 PATCH 要求:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"justification": "NEW_JUSTIFICATION"
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID?updateMask=justification"
如要更新批次中繼資料變更要求的酬載,請傳送下列 PATCH 要求:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"justification": "NEW_JUSTIFICATION",
"batchChangeMetadataRequest": {
"name": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID",
"changes": [
{
"updateEntryRequest": {
"entry": {
"name": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID/entries/EXISTING_ENTRY_ID",
"aspects": {
"ASPECT_PROJECT_ID.ASPECT_LOCATION.ASPECT_TYPE_ID": {
"data": {
"ASPECT_FIELD_NAME": "UPDATED_ASPECT_FIELD_VALUE"
}
}
}
},
"updateMask": "aspects",
"aspectKeys": [
"ASPECT_PROJECT_ID.ASPECT_LOCATION.ASPECT_TYPE_ID"
]
}
}
]
}
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID?updateMask=batchChangeMetadataRequest.changes,justification"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:變更要求所在的區域,例如us-central1。CHANGE_REQUEST_ID:變更要求的專屬 ID。NEW_JUSTIFICATION:變更要求的更新理由。ENTRY_GROUP_ID:目標項目群組的 ID。EXISTING_ENTRY_ID:更新後的批次酬載中的項目 ID。ASPECT_PROJECT_ID:切面類型所在專案的 ID。ASPECT_LOCATION:切面類型的所在位置,例如us-central1或global。ASPECT_TYPE_ID:要更新的切面類型 ID。ASPECT_FIELD_NAME:要更新的面向欄位名稱。UPDATED_ASPECT_FIELD_VALUE:面向欄位的更新值。
刪除要求
要求者只能刪除處於NEW狀態的要求。如要刪除要求,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「我的要求」分頁標籤。
找出要刪除的要求所在的資料列。如有需要,請套用篩選器來找出該項目。
按一下 「Actions」(動作),然後按一下「Delete」(刪除)。
REST
如要刪除要求,請使用 changeRequests.delete 方法。
例如,傳送下列 DELETE 要求:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。CHANGE_REQUEST_ID:要刪除的要求專屬 ID。
以核准者身分管理要求
核准者會評估並處理資料資源的待處理要求。
通知
核准或拒絕要求後,Knowledge Catalog 會處理這項決定,並傳送電子郵件通知給要求者,附上您的審查意見。如果是批次要求,Knowledge Catalog 會在更新程序完成後傳送電子郵件通知。如果作者是服務帳戶,Knowledge Catalog 就不會傳送通知。
核准注意事項
您無法核准自己的要求。核准者必須是不同的主體,且具備建議變更所需的所有寫入和類型使用權限。不過,擴充代理可以根據可信度自動核准自己的要求,也可以將要求提交給核准者審查。對於擴充代理程式產生的批次中繼資料變更要求,您可以在要求處於 NEW 或 FAILED 狀態時,編輯要求酬載,然後再核准。
查看待處理的要求
如要查看待審查的要求,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「待核准」分頁標籤,查看待審查的要求。您可以依資源類型、要求類型或日期篩選要求。
REST
如要列出特定專案和位置中待審查的要求,請使用 changeRequests.list 方法。
例如,傳送下列 GET 要求:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests?filter=state=NEW"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。
在傳回的清單中,批次中繼資料變更要求的 changeType 欄位會設為 BATCH_CHANGE_METADATA。擴充代理程式執行作業建立的要求,會在 batchChangeMetadataRequest.description.job.name 中包含擴充執行作業 ID。
待處理批次變更要求的回應範例
{ "changeRequests": [ { "name": "projects/my-project/locations/us-central1/changeRequests/b326114f-472b-457d-81e8-98b8ad89c608", "uid": "b326114f-472b-457d-81e8-98b8ad89c608", "justification": "Enrichment Agent Proposal: Batch Metadata Change", "author": "enrichment-agent@my-project.iam.gserviceaccount.com", "state": "NEW", "resource": "//dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-entry-group", "changeType": "BATCH_CHANGE_METADATA", "batchChangeMetadataRequest": { "name": "projects/my-project/locations/us-central1/entryGroups/my-entry-group", "description": { "job": { "name": "projects/123456789012/locations/us-central1/enrichmentTasks/my-enrichment-task/runs/55199e83-1a1e-4837-bb8c-c402c6bee641" } }, "changes": [ { "createEntryRequest": { "parent": "projects/my-project/locations/us-central1/entryGroups/my-entry-group", "entryId": "new-entry-id", "entry": { "entryType": "projects/my-project/locations/us-central1/entryTypes/my-entry-type" } } } ] } } ] }
核准要求
如要核准要求,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「待核准」分頁標籤。
找到要核准的要求所在的資料列。
按一下 「Actions」(動作),然後點選「Approve」(核准)。
REST
如要核准要求,請使用 changeRequests.approve 方法。
例如,傳送下列 POST 要求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID:approve"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。CHANGE_REQUEST_ID:要核准的變更要求專屬 ID。
當您核准使用者或擴充代理提交的批次中繼資料變更要求時,Knowledge Catalog 會同步驗證您的 IAM 權限和酬載規則:
- 如果驗證成功,方法會傳回處於
APPLYING狀態的ChangeRequest,而 Knowledge Catalog 會在背景執行批次作業:
{
"name": "projects/my-project/locations/us-central1/changeRequests/b326114f-472b-457d-81e8-98b8ad89c608",
"uid": "b326114f-472b-457d-81e8-98b8ad89c608",
"justification": "Proposing new entry using RequestBatchMetadataChange",
"author": "requester@example.com",
"state": "APPLYING",
"resource": "//dataplex.googleapis.com/projects/my-project/locations/us-central1/entryGroups/my-entry-group",
"approver": "approver@example.com",
"changeType": "BATCH_CHANGE_METADATA",
"batchChangeMetadataRequest": {
"name": "projects/my-project/locations/us-central1/entryGroups/my-entry-group",
"changes": [
{
"createEntryRequest": {
"parent": "projects/my-project/locations/us-central1/entryGroups/my-entry-group",
"entryId": "new-entry-id",
"entry": {
"entryType": "projects/my-project/locations/us-central1/entryTypes/my-entry-type"
}
}
}
]
}
}
```
* If synchronous payload validation fails (for example, with an
`INVALID_ARGUMENT` or `NOT_FOUND` error), the request immediately
transitions to the `FAILED` state instead of `APPLYING`.
* If permission validation fails with a `PERMISSION_DENIED` error, the request
remains in the `NEW` state.
After background execution finishes, poll `changeRequests.get` to check the
final state (`APPROVED` or `FAILED`). If any changes in the batch fail,
`batchChangeMetadataResponse.failedRequests` lists each failed change by its
position in `changes` (starting at `0`) along with the error details:
```json
{
"name": "projects/my-project/locations/us-central1/changeRequests/b326114f-472b-457d-81e8-98b8ad89c608",
"state": "APPROVED",
"changeType": "BATCH_CHANGE_METADATA",
"batchChangeMetadataResponse": {
"failedRequests": {
"1": {
"code": 5,
"message": "Entry not found."
}
}
}
}
如要進一步瞭解要求狀態,請參閱「管理工作流程處理路徑」。
拒絕要求
如要拒絕要求,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「待核准」分頁標籤。
找到要拒絕的要求所在的資料列。
按一下 「Actions」(動作),然後按一下「Reject」(拒絕)。
在對話方塊中,輸入拒絕原因。
按一下「拒絕」確認操作。
REST
如要拒絕要求,請使用 changeRequests.reject 方法。
例如,傳送下列 POST 要求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"comment": "REJECTION_REASON"
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID:reject"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。CHANGE_REQUEST_ID:要拒絕的變更要求專屬 ID。REJECTION_REASON:拒絕原因。
提供明確的拒絕理由,有助於要求者瞭解決策,並在重新提交要求前,進一步說明理由。
以工作流程管理員身分管理要求
工作流程管理員負責監督整個組織的控管要求、設定核准者電子郵件通知、稽核核准記錄,以及刪除任何狀態的要求。
設定核准者電子郵件通知
您可以設定項目群組或組織詞彙的核准者電子郵件通知,最多可指定 10 個電子郵件地址。每當該資源有單一或批次中繼資料變更要求時,系統就會自動通知這些地址。
如要設定項目群組的通知,請使用 entryGroups.patch 方法:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"changeRequestConfig": {
"approverEmails": [
"APPROVER_EMAIL_1",
"APPROVER_EMAIL_2"
]
}
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID?updateMask=changeRequestConfig"
如要設定組織詞彙的通知,請使用 glossaries.patch 方法:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"changeRequestConfig": {
"approverEmails": [
"APPROVER_EMAIL_1",
"APPROVER_EMAIL_2"
]
}
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/glossaries/GLOSSARY_ID?updateMask=changeRequestConfig"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:項目群組的位置,例如us-central1或global。ENTRY_GROUP_ID:項目群組的 ID。GLOSSARY_ID:組織詞彙的 ID。APPROVER_EMAIL_1、APPROVER_EMAIL_2:建立變更要求時,要通知的潛在核准者電子郵件地址。最多可以指定 10 個電子郵件地址。
查看所有要求並追蹤核准記錄
您可以查看所有有效和歷來的要求 (不限狀態),藉此監控工作流程,並稽核資料產品存取權和中繼資料變更:
控制台
前往 Google Cloud 控制台的 Knowledge Catalog「Governance Workflows」(管理工作流程) 頁面。
按一下「Approval Log」(核准記錄) 分頁標籤,即可查看已完成的核准、拒絕和歷來稽核追蹤記錄。
REST
如要列出特定專案和位置中的所有有效和歷來要求,請使用 changeRequests.list 方法。
例如,傳送下列 GET 要求:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests"
更改下列內容:
PROJECT_ID:Google Cloud 專案的 ID。LOCATION:資源所在的區域,例如us-central1。
刪除任何狀態的要求
要求者只能刪除 NEW 狀態的要求,但工作流程管理員可以使用 Google Cloud 控制台或 changeRequests.delete 方法,刪除任何狀態的要求。如需操作說明,請參閱「刪除要求」。
後續步驟
- 進一步瞭解管理工作流程。
- 瞭解如何要求變更單一資源的中繼資料。
- 瞭解如何要求批次變更中繼資料。