更新架构模式

架构模式用于定义架构注册表或特定主题是否允许更改(例如写入或修改架构)。

  • 架构模式支持的值包括 ReadonlyReadwrite

  • 架构模式以包含键值对的 JSON 对象形式进行管理。例如,以下是一个示例:

    {
      "mode": "READWRITE"
    }
    
  • 如果未在架构注册表级别明确设置,架构模式默认设为 Readwrite

  • 如果未在主题级明确指定架构模式,则会从架构注册表中继承该值。

  • 在主题级设置的配置会覆盖在架构注册表级设置的配置。

如需详细了解架构模式(包括其值),请参阅架构模式

更新架构模式所需的角色和权限

如需获得更新架构注册表或主题的架构模式所需的权限,请让您的管理员为您授予项目的 Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含更新架构注册表或主题的架构模式所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需更新架构注册表或主题的架构模式,您需要具备以下权限:

  • 针对要更新模式的资源授予以下权限: managedkafka.mode.update

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解 Managed Service for Apache Kafka 可用的预定义角色,请参阅访问权限控制文档

更新架构注册表的架构模式

控制台

如需更新整个架构注册表的架构模式,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往架构注册表页面。

    前往架构注册表

    系统会显示项目中的架构注册表列表。

  2. 点击要更新架构模式的架构注册表的名称。

    系统会打开架构注册表详情页面。

  3. 在注册表的主要详细信息部分中,找到架构模式设置,然后点击旁边的修改图标。

    系统随即会打开修改架构模式页面。

  4. 架构模式下拉菜单中,选择相应值。

    如需详细了解这些值,请参阅关于架构模式

  5. 点击保存

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:新的架构模式。有效值包括:
    • READWRITE
    • READONLY

示例:

如需将 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 替换为模式的某个有效字符串选项:

  • READWRITE
  • READONLY

如果成功,API 会返回 200 OK 状态代码和包含更新后的模式配置的 JSON 表示形式的响应正文。

如需了解详情,请参阅 REST API 文档

更新主题的架构模式

控制台

如需更新特定主题的架构模式,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往架构注册表页面。

    前往架构注册表

  2. 点击包含主题的架构注册表的名称。

    系统会打开架构注册表详情页面。

  3. 此架构注册表中的主题表格中,点击要更新架构模式的主题的名称。
  4. 找到相应主题的架构模式设置,然后点击其旁边的修改图标。

    系统随即会打开修改架构模式页面。

  5. 架构模式下拉菜单中,选择相应值。 在此处选择一个值会覆盖相应主题的注册表级设置。

    如需详细了解这些值,请参阅 关于架构模式

  6. 点击保存

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:新的架构模式。有效值包括:
    • READWRITE
    • READONLY

示例:

如需将 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 替换为模式的某个有效字符串选项:

  • READWRITE
  • READONLY

示例 - 在默认上下文中将主题 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 替换为模式的某个有效字符串选项:

  • READWRITE
  • READONLY

示例 - 在上下文 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 文档

后续步骤

Apache Kafka® 是 Apache Software Foundation 或其关联公司在美国和/或其他国家/地区的注册商标。