結構定義模式會定義結構定義儲存庫或特定主體是否允許變更,例如寫入或編輯結構定義。
結構定義模式支援的值為 Readonly 和 Readwrite。
結構定義模式是以包含鍵/值組合的 JSON 物件管理。舉例來說,以下是範例:
{ "mode": "READWRITE" }如果未在結構定義登錄層級明確設定,結構定義模式會預設為「讀寫」。
如果未在主體層級明確指定結構定義模式,系統會從結構定義登錄檔繼承值。
主體層級的設定會覆寫結構定義儲存庫層級的設定。
如要進一步瞭解結構定義模式 (包括其值),請參閱結構定義模式。
更新結構定義模式所需的角色和權限
如要取得更新結構定義儲存庫或主體結構定義模式所需的權限,請要求管理員授予您專案的「Managed Kafka 結構定義儲存庫編輯者 」(roles/managedkafka.schemaRegistryEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備更新結構定義儲存庫或主體結構定義模式所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要更新結構定義登錄或主體的結構定義模式,必須具備下列權限:
-
在要更新模式的資源上授予下列權限:
managedkafka.mode.update
如要進一步瞭解 Managed Service for Apache Kafka 適用的預先定義角色,請參閱存取權控管說明文件。
更新結構定義儲存庫的結構定義模式
控制台
如要更新整個結構定義儲存庫的結構定義模式,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Schema registries」頁面。
畫面會顯示專案中的結構定義登錄清單。
- 按一下要更新結構定義模式的結構定義登錄名稱。
「結構定義登錄詳細資料」頁面隨即開啟。
- 在登錄的主要詳細資料區段中,找到「結構定義模式」設定,然後按一下旁邊的「編輯」圖示。
「編輯結構定義模式」頁面隨即開啟。
- 從「架構模式」下拉式選單中選取值。
如要進一步瞭解這些值,請參閱「關於結構定義模式」。
- 按一下 [儲存]。
gcloud
如要更新結構定義儲存庫的結構定義模式,請使用 gcloud alpha managed-kafka schema-registries update 指令:
gcloud alpha managed-kafka schema-registries update SCHEMA_REGISTRY_ID \
--location=LOCATION \
--mode=MODE_TYPE
SCHEMA_REGISTRY_ID:要更新的結構定義登錄檔 ID。LOCATION:要更新的結構定義登錄檔區域。MODE_TYPE:新的結構定義模式。有效值如下:READWRITEREADONLY
範例:
如要將 us-central1 區域中 test-registry 結構定義儲存庫的結構定義模式更新為 READONLY,請執行下列指令:
gcloud alpha managed-kafka schema-registries update test-registry \
--location=us-central1 \
--mode=READONLY
REST
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖:
gcloud auth application-default print-access-token。
如要更新架構模式,請使用 projects.locations.schemaRegistries.contexts.mode.update 方法,對架構登錄的 REST API 端點發出 PUT 要求。
使用預設情境更新結構定義儲存庫的結構定義模式:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/mode
請替換下列路徑參數:
PROJECT_ID:您的 Google Cloud 專案 ID。LOCATION:結構定義登錄檔所在的區域。SCHEMA_REGISTRY_ID:架構登錄檔的專屬 ID。
要求主體:
在要求主體中加入 JSON 物件,指定模式詳細資料。
{ "mode": "MODE_TYPE" }
將 MODE_TYPE 替換為模式的其中一個有效字串選項:
READWRITEREADONLY
如果成功,API 會傳回 200 OK 狀態碼,以及包含更新模式設定的 JSON 表示法。
詳情請參閱 REST API 說明文件。
更新主體的結構定義模式
控制台
如要更新特定主體的結構定義模式,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Schema registries」頁面。
- 按一下包含主體的結構定義登錄名稱。
「結構定義登錄詳細資料」頁面隨即開啟。
- 在「Subjects in this schema registry」(這個結構定義儲存庫中的主體) 表格中,按一下要更新結構定義模式的主體名稱。
- 找到主體的「結構定義模式」設定,然後按一下旁邊的「編輯」圖示。
「編輯結構定義模式」頁面隨即開啟。
- 從「架構模式」下拉式選單中選取值。
在此選擇值會覆寫這個特定主題的登錄檔層級設定。
如要進一步瞭解這些值,請參閱 關於結構定義模式。
- 按一下 [儲存]。
gcloud
如要更新主體的結構定義模式,請使用 gcloud alpha managed-kafka schema-registries subject update 指令:
gcloud alpha managed-kafka schema-registries subject update SUBJECT_NAME \
--schema-registry=SCHEMA_REGISTRY_ID \
--location=LOCATION \
--mode=MODE_TYPE
SUBJECT_NAME:要更新的主題名稱。SCHEMA_REGISTRY_ID:包含主體的結構定義登錄檔 ID。LOCATION:包含主體的結構定義登錄檔區域。MODE_TYPE:新的結構定義模式。有效值如下:READWRITEREADONLY
範例:
如要將 us-central1 區域中 test-registry 結構定義登錄的 test-subject 主題結構定義模式更新為 READONLY,請執行下列指令:
gcloud alpha managed-kafka schema-registries subject update test-subject \
--schema-registry=test-registry \
--location=us-central1 \
--mode=READONLY
REST
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖:
gcloud auth application-default print-access-token。
如要更新主體的結構定義模式,請使用 projects.locations.schemaRegistries.contexts.mode.update 方法,對特定主體的 REST API 端點發出 PUT 要求。
更新預設環境中主體的結構定義模式:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/mode/SUBJECT_NAME
請替換下列路徑參數:
PROJECT_ID:您的 Google Cloud 專案 ID。LOCATION:結構定義登錄檔所在的區域。SCHEMA_REGISTRY_ID:架構登錄檔的專屬 ID。SUBJECT_NAME:主旨名稱。
要求主體:
在要求主體中加入 JSON 物件,指定模式詳細資料。
{ "mode": "MODE_TYPE" }
將 MODE_TYPE 替換為模式的其中一個有效字串選項:
READWRITEREADONLY
範例:在預設環境中,將主體 user_events 結構定義模式設為 Readonly:
PUT https://managedkafka.googleapis.com/v1main/projects/test-gcp-project/locations/us-east1/schemaRegistries/main_registry/mode/user_events收到的請款要求
包含主體:
{ "mode": "READONLY" }
如果成功,API 會傳回 200 OK 狀態碼,以及包含更新後主體或內容資源 JSON 表示法的回應內容,反映這項變更。
在特定脈絡中更新主體的結構定義模式:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/contexts/CONTEXT_NAME/mode/SUBJECT_NAME
請替換下列路徑參數:
PROJECT_ID:您的 Google Cloud 專案 ID。LOCATION:結構定義登錄檔所在的區域。SCHEMA_REGISTRY_ID:架構登錄檔的專屬 ID。CONTEXT_NAME:內容的名稱。SUBJECT_NAME:主旨名稱。
要求主體:
在要求主體中加入 JSON 物件,指定模式詳細資料。
{ "mode": "MODE_TYPE" }
將 MODE_TYPE 替換為模式的其中一個有效字串選項:
READWRITEREADONLY
範例:在 test_context 環境中,將主體 user_events 結構定義模式設為 Readonly:
PUT https://managedkafka.googleapis.com/v1main/projects/test-gcp-project/locations/us-east1/schemaRegistries/main_registry/contexts/test_context/mode/user_events收到的請款要求
包含主體:
{ "mode": "READONLY" }
如果成功,API 會傳回 200 OK 狀態碼,以及包含更新後主體或內容資源 JSON 表示法的回應內容,反映這項變更。
詳情請參閱 REST API 說明文件。