結構定義儲存庫是用來管理 Kafka 生產者和消費者使用的結構定義。
本文說明如何使用Google Cloud 控制台、Google Cloud CLI 或 Managed Kafka API,在 Managed Service for Apache Kafka 中建立結構定義登錄資源。
事前準備
建立結構定義登錄檔之前,請先完成下列步驟:
- 在您打算建立結構定義儲存庫的相同區域中,建立 Managed Service for Apache Kafka 叢集。
必要角色和權限
如要取得建立結構定義儲存庫所需的權限,請要求管理員授予您專案的 Managed Kafka 結構定義儲存庫編輯者 (roles/managedkafka.schemaRegistryEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立結構定義登錄所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立結構定義登錄,必須具備下列權限:
-
在父項位置授予這項權限:
managedkafka.schemaRegistries.create
您也可以使用「Managed Kafka Schema Registry Admin」等較高層級的角色,建立及管理結構定義儲存庫。
如要進一步瞭解 Managed Service for Apache Kafka 適用的預先定義角色,請參閱存取權控管說明文件。
建立結構定義登錄
控制台
- 前往 Google Cloud 控制台的「Schema registries」頁面。
「結構定義登錄」頁面隨即開啟。
- 在「Schema registries」(結構定義登錄) 頁面中,按一下「Create」(建立)。
「Create Schema registry」(建立結構定義登錄) 頁面隨即開啟。
- 在「Schema registry name」(架構登錄名稱) 中,輸入登錄的專屬 ID。
名稱開頭須為英文字母,只能包含英文字母 (a-z、A-Z)、數字 (0-9) 和底線 (_),且不得超過 63 個字元。
- 從選單中選取或輸入「區域」。
您必須在指定區域中,擁有一個或多個有效的 Managed Service for Apache Kafka 叢集。如要查看叢集所屬的地區,請參閱列出叢集的說明文件。
如需支援的位置清單,請參閱「Managed Service for Apache Kafka 位置」。
- 點選「建立」。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- 使用
gcloud beta managed-kafka schema-registries create指令建立結構定義登錄:gcloud beta managed-kafka schema-registries create SCHEMA_REGISTRY_ID \ --location=LOCATION \
更改下列內容:
- SCHEMA_REGISTRY_ID (必填):新結構定義登錄的專屬 ID。這是登錄檔資源名稱的一部分。名稱開頭須為英文字母,只能包含英文字母 (a-z、A-Z)、數字 (0-9) 和底線 (_),且長度不得超過 63 個半形字元。
- LOCATION (必要):要建立結構定義儲存庫的 Google Cloud 區域。這個位置必須與使用此登錄檔的 Managed Service for Apache Kafka 叢集區域相符。如需支援的位置,請參閱「 Managed Service for Apache Kafka 位置」。
如要在
us-central1區域中建立名為test_schema_registry的結構定義登錄檔,請執行下列指令:gcloud beta managed-kafka schema-registries create test_schema_registry \ --location=us-central1
指令順利執行完畢後,系統就會建立結構定義登錄。接著,您可以設定 Kafka 用戶端來使用該網址。如要查看結構定義登錄網址,請參閱「 結構定義登錄頁面詳細資料」。
REST
如要使用 REST API 建立結構定義登錄執行個體,請按照下列步驟操作。
- 傳送類似下列內容的
POST要求: - 建立具有下列結構的 JSON 檔案
request-body.json: - SCHEMA_REGISTRY_ID (必填):新結構定義登錄的專屬 ID。這是登錄檔資源名稱的一部分。名稱開頭須為英文字母,只能包含英文字母 (a-z、A-Z)、數字 (0-9) 和底線 (_),且長度不得超過 63 個半形字元。
POST https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
{ "schemaRegistryId": "SCHEMA_REGISTRY_ID" }
更改下列內容:
使用建構的 URI、標頭和主體,執行 POST 要求。如果成功,API 會傳回 200 OK 狀態碼,以及包含新建立 SchemaRegistry 資源 JSON 表示法的回應主體。
以下是成功的回應範例。
{ "name": "projects/testing-311516/locations/us-central1/schemaRegistries/test", "contexts": [ "projects/testing-311516/locations/us-central1/schemaRegistries/test/contexts/." ] }
projects/testing-311516/locations/us-central1/schemaRegistries/test/contexts/.
代表預設環境。預設環境中的資源不需要指定任何環境。
詳情請參閱 REST API 說明文件。