架构注册表是一个用于管理 Kafka 提供方和使用方所用架构的代码库。
本文档介绍如何使用Google Cloud 控制台、Google Cloud CLI 或 Managed Kafka API 在 Managed Service for Apache Kafka 中创建架构注册表资源。
准备工作
在创建架构注册表之前,请完成以下操作:
- 在您计划创建架构注册表的同一区域中创建 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 可用的预定义角色,请参阅访问权限控制文档。
创建架构注册表
控制台
- 在 Google Cloud 控制台中,前往架构注册表页面。
系统随即会打开架构注册表页面。
- 在架构注册表页面上,点击创建。
系统随即会打开创建架构注册表页面。
- 对于架构注册表名称,请输入注册表的唯一标识符。
名称必须以字母开头,只能包含字母(a-z、A-Z)、数字 (0-9) 和下划线 (_),并且长度不得超过 63 个字符。
- 从菜单中选择或输入区域。
您必须已在指定区域中拥有一个或多个有效的 Managed Service for Apache Kafka 集群。如需查看集群的区域,请参阅有关列出集群的文档。
如需查看支持的位置列表,请参阅 Managed Service for Apache Kafka 位置。
- 点击创建。
gcloud
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
- 使用
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 创建架构注册表实例,请执行以下步骤。
- 发送类似于以下内容的
POST请求: - 创建一个具有以下结构的 JSON 文件
request-body.json: - SCHEMA_REGISTRY_ID(必需):新架构注册表的唯一标识符。此值是注册表资源名称的一部分。名称必须以字母开头,只能包含字母(a-z、A-Z)、数字 (0-9) 和下划线 (_),并且不得超过 63 个字符。
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
{ "schemaRegistryId": "SCHEMA_REGISTRY_ID" }
替换以下内容:
使用构建的 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 文档。