架构注册表是一个用于管理 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
创建架构注册表
控制台
- 在 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 文档。