您可以列出專案中特定結構定義登錄檔內的主題版本。
本文將說明如何使用Google Cloud 控制台或 Managed Kafka API 列出主體版本。
必要角色和權限
如要取得列出主體版本的權限,請要求管理員授予您結構定義註冊資料庫的「Managed Kafka Schema Registry Viewer」 (roles/managedkafka.schemaRegistryViewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備列出主體版本所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要列出主體版本,必須具備下列權限:
-
在父項主體上授予下列權限:
managedkafka.versions.list
如要進一步瞭解預先定義的角色,請參閱「Managed Service for Apache Kafka 預先定義的角色」。
列出主體中的結構定義版本
如要列出專案中特定結構定義登錄中的所有主體版本,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Schema registries」頁面。
按一下主體所在的結構定義登錄名稱。
在「Subjects in this schema registry」(這個結構定義儲存庫中的主體) 下方,按一下主體名稱。
在「Subject details」(主體詳細資料) 頁面中,結構定義版本會列在「All Versions」(所有版本) 下方。
選用:如要查看版本的結構定義,請勾選版本 ID 的核取方塊。結構定義會顯示在「定義」下方。
選用:如要查看這個主題的任意兩個結構定義版本之間的差異,請按照下列步驟操作:
- 在「所有版本」下方,選取要比較的版本。
- 在「定義」區域中,按一下 「查看差異」。
兩個結構定義會並排顯示,並醒目顯示新增、刪除和變更的項目。
REST
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖,請執行:gcloud auth application-default print-access-token。
如要列出主體版本,請對 projects.locations.schemaRegistries.subjects.versions.list 方法發出 GET 要求。
GET https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID/versions
Authorization: Bearer $(gcloud auth application-default print-access-token)
更改下列內容:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:架構登錄檔所在的 Google Cloud 區域。
- REGISTRY_ID:結構定義登錄檔的 ID。
- SUBJECT_ID:主體的 ID。
範例:
GET https://managedkafka.googleapis.com/v1main/projects/test-project/locations/us-central1/schemaRegistries/test_registry/subjects/test_subject/versions
Authorization: Bearer $(gcloud auth application-default print-access-token)
或使用背景資訊:
GET https://managedkafka.googleapis.com/v1main/projects/test-project/locations/us-central1/schemaRegistries/test_registry/contexts/test_context/subjects/test_subject/versions
Authorization: Bearer $(gcloud auth application-default print-access-token)
其中:
test-project是您的 Google Cloud 專案 ID。us-central1是 Google Cloud 架構登錄所在的地區。test_registry是結構定義登錄的 ID。test_context是內容的 ID。test_subject是主體的 ID。
如果要求成功,API 會傳回 200 OK 狀態碼。回應主體包含主體版本的 JSON 陣列。
以下是成功回應的範例:
{
"versions": [
{
"name": "projects/test-project/locations/us-central1/schemaRegistries/test_registry/subjects/test_subject/versions/1",
"revisionId": "1a2b3c4d",
"schemaId": "S12345",
"createTime": "2024-07-15T12:00:00Z",
"revisionCreateTime": "2024-07-15T12:00:00Z"
},
{
"name": "projects/test-project/locations/us-central1/schemaRegistries/test_registry/subjects/test_subject/versions/2",
"revisionId": "5e6f7g8h",
"schemaId": "S67890",
"createTime": "2024-07-16T14:30:00Z",
"revisionCreateTime": "2024-07-16T14:30:00Z"
}
]
}
詳情請參閱 projects.locations.schemaRegistries.subjects.versions.list 方法的說明文件。