你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Java 的 Azure 架构注册表客户端库 - 版本 1.3.10
Azure 架构注册表是由 Azure 事件中心 托管的架构存储库服务,提供架构存储、版本控制和管理。 应用程序利用注册表来减小有效负载大小,同时使用架构标识符而不是完整架构来描述有效负载结构。
源代码 | 包 (Maven) | API 参考文档 | 产品文档 | 样品
入门
先决条件
- Java 开发工具包 (JDK) 8 或更高版本。
- Azure 订阅
- 事件中心命名空间
添加包
包括 BOM 文件
请将 azure-sdk-bom 包含在项目中,以依赖于库的正式发布 (GA) 版本。 在以下代码段中,将 {bom_version_to_target} 占位符替换为版本号。 若要详细了解 BOM,请参阅 AZURE SDK BOM 自述文件。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后在 dependencies 节中包含直接依赖项,不带版本标记,如下所示。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
</dependency>
</dependencies>
包括直接依赖项
如果要依赖于 BOM 中不存在的特定版本的库,请将直接依赖项添加到项目中,如下所示。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
<version>1.3.10</version>
</dependency>
验证客户端
若要与 Azure 架构注册表服务交互,需要通过 创建 类的SchemaRegistryClient
SchemaRegistryClientBuilder
实例。 需要一个 终结点 和一个 API 密钥 来实例化客户端对象。
使用 Azure Active Directory 凭据创建 SchemaRegistryClient
可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。 请注意,区域终结点不支持 AAD 身份验证。 为资源创建自定义子域,以使用此类身份验证。
若要使用如下所示的 DefaultAzureCredential 提供程序或 Azure SDK 提供的其他凭据提供程序,请包含 包 azure-identity
:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.1</version>
</dependency>
还需要 注册新的 AAD 应用程序 ,并授予对架构注册表服务 的访问权限 。
将 AAD 应用程序的客户端 ID、租户 ID 和客户端密码的值设置为环境变量:AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET。
异步客户端
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryAsyncClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildAsyncClient();
同步客户端
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildClient();
关键概念
架构
架构有 6 个组件:
- 组名称:架构注册表实例中架构组的名称。
- 架构名称:架构的名称。
- 架构 ID:架构注册表实例为架构分配的 ID。
- 序列化类型:用于架构序列化的格式。 例如,Avro。
- 架构内容:架构的字符串表示形式。
- 架构版本:分配给架构注册表实例中架构的版本。
这些组件扮演不同的角色。 一些用作操作的输入,一些用作输出。 目前, SchemaProperties 仅公开那些是 SchemaRegistry 操作中使用的潜在输出的属性。 这些公开的属性是 Content
和 Id
。
示例
注册架构
注册要存储在 Azure 架构注册表中的架构。
String schema = "{\"type\":\"enum\",\"name\":\"TEST\",\"symbols\":[\"UNIT\",\"INTEGRATION\"]}";
SchemaProperties properties = client.registerSchema("{schema-group}", "{schema-name}", schema,
SchemaFormat.AVRO);
System.out.printf("Schema id: %s, schema format: %s%n", properties.getId(), properties.getFormat());
检索架构的属性
从 Azure 架构注册表中检索以前注册的架构的属性。
SchemaRegistrySchema schema = client.getSchema("{schema-id}");
System.out.printf("Schema id: %s, schema format: %s%n", schema.getProperties().getId(),
schema.getProperties().getFormat());
System.out.println("Schema contents: " + schema.getDefinition());
检索架构
从 Azure 架构注册表中检索以前注册的架构的内容和属性。
String schemaContent = "{\n"
+ " \"type\" : \"record\", \n"
+ " \"namespace\" : \"SampleSchemaNameSpace\", \n"
+ " \"name\" : \"Person\", \n"
+ " \"fields\" : [\n"
+ " { \n"
+ " \"name\" : \"FirstName\" , \"type\" : \"string\" \n"
+ " }, \n"
+ " { \n"
+ " \"name\" : \"LastName\", \"type\" : \"string\" \n"
+ " }\n"
+ " ]\n"
+ "}";
SchemaProperties properties = client.getSchemaProperties("{schema-group}", "{schema-name}",
schemaContent, SchemaFormat.AVRO);
System.out.println("Schema id: " + properties.getId());
System.out.println("Format: " + properties.getFormat());
System.out.println("Version: " + properties.getVersion());
疑难解答
启用日志记录
适用于 Java 的 Azure SDK 提供一致的日志记录案例,可帮助排查应用程序错误并加快解决。 生成的日志会在到达终端状态之前捕获应用程序的流,以帮助查找根本问题。 查看 日志记录 Wiki,获取有关启用日志记录的指南。
后续步骤
在此处可以找到更多示例。
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。