架构模式用于定义架构注册表或特定主题是否允许更改(例如写入或修改架构)。
架构模式支持的值包括 Readonly 和 Readwrite。
架构模式以包含键值对的 JSON 对象形式进行管理。例如,以下是一个示例:
{ "mode": "READWRITE" }如果未在架构注册表级别明确设置,架构模式默认设为 Readwrite。
如果未在主题级明确指定架构模式,则会从架构注册表中继承该值。
在主题级设置的配置会覆盖在架构注册表级设置的配置。
如需详细了解架构模式(包括其值),请参阅架构模式。
更新架构模式所需的角色和权限
如需获得更新架构注册表或主题的架构模式所需的权限,请让您的管理员为您授予项目的 Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含更新架构注册表或主题的架构模式所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需更新架构注册表或主题的架构模式,您需要具备以下权限:
-
针对要更新模式的资源授予以下权限:
managedkafka.mode.update
如需详细了解 Managed Service for Apache Kafka 可用的预定义角色,请参阅访问权限控制文档。
更新架构注册表的架构模式
控制台
如需更新整个架构注册表的架构模式,请按以下步骤操作:
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 文档。
更新主题的架构模式
控制台
如需更新特定主题的架构模式,请按以下步骤操作:
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 文档。