创建架构注册表

架构注册表是一个用于管理 Kafka 提供方和使用方所用架构的代码库。

本文档介绍如何使用Google Cloud 控制台、Google Cloud CLI 或 Managed Kafka API 在 Managed Service for Apache Kafka 中创建架构注册表资源。

准备工作

在创建架构注册表之前,请完成以下操作:

所需的角色和权限

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

此预定义角色包含创建架构注册表所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建架构注册表需要以下权限:

  • 在父位置授予此权限: managedkafka.schemaRegistries.create

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

Managed Kafka Schema Registry Admin 等更高级别的角色还允许您创建和管理架构注册表。

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

创建架构注册表

控制台

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

    前往架构注册表

    系统随即会打开架构注册表页面。

  2. 架构注册表页面上,点击创建

    系统随即会打开创建架构注册表页面。

  3. 对于架构注册表名称,请输入注册表的唯一标识符。

    名称必须以字母开头,只能包含字母(a-z、A-Z)、数字 (0-9) 和下划线 (_),并且长度不得超过 63 个字符。

  4. 从菜单中选择或输入区域

    您必须已在指定区域中拥有一个或多个有效的 Managed Service for Apache Kafka 集群。如需查看集群的区域,请参阅有关列出集群的文档。

    如需查看支持的位置列表,请参阅 Managed Service for Apache Kafka 位置

  5. 点击创建

gcloud

  1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

    gcloud init

    如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  2. 使用 gcloud beta managed-kafka schema-registries create 命令创建架构注册表:

    gcloud beta managed-kafka schema-registries create SCHEMA_REGISTRY_ID \
        --location=LOCATION \

    替换以下内容:

    • SCHEMA_REGISTRY_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 创建架构注册表实例,请执行以下步骤。

  1. 发送类似于以下内容的 POST 请求:
  2. 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
    
  3. 创建一个具有以下结构的 JSON 文件 request-body.json
  4. {
      "schemaRegistryId": "SCHEMA_REGISTRY_ID"
    }

    替换以下内容:

    • SCHEMA_REGISTRY_ID(必需):新架构注册表的唯一标识符。此值是注册表资源名称的一部分。名称必须以字母开头,只能包含字母(a-z、A-Z)、数字 (0-9) 和下划线 (_),并且不得超过 63 个字符。

    使用构建的 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 文档

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

后续步骤