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