Biblioteca de clientes do Registro de Esquema do Azure para Java – versão 1.3.10
O Registro de Esquema do Azure é um serviço de repositório de esquema hospedado por Hubs de Eventos do Azure, fornecendo armazenamento de esquema, controle de versão e gerenciamento. O registro é aproveitado por aplicativos para reduzir o tamanho da carga enquanto descreve a estrutura de carga com identificadores de esquema em vez de esquemas completos.
Código-fonte | Pacote (Maven) | Documentação | de referência da APIDocumentação | do produtoAmostras
Introdução
Pré-requisitos
- Um Java Development Kit (JDK) versão 8 ou posterior.
- Assinatura do Azure
- Um namespace dos Hubs de Eventos
Incluir o pacote
Incluir o arquivo da BOM
Inclua o azure-sdk-bom em seu projeto para assumir a dependência da versão ga (disponibilidade geral) da biblioteca. No trecho a seguir, substitua o espaço reservado {bom_version_to_target} pelo número de versão. Para saber mais sobre o BOM, consulte o BOM README do SDK do AZURE.
<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>
e inclua a dependência direta na seção dependências sem a marca de versão, conforme mostrado abaixo.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
</dependency>
</dependencies>
Incluir dependência direta
Se você quiser assumir a dependência de uma versão específica da biblioteca que não está presente no BOM, adicione a dependência direta ao seu projeto da seguinte maneira.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-schemaregistry</artifactId>
<version>1.3.10</version>
</dependency>
Autenticar o cliente
Para interagir com o serviço do Registro de Esquema do Azure, você precisará criar uma instância da SchemaRegistryClient
classe por meio do SchemaRegistryClientBuilder
. Você precisará de um ponto de extremidade e uma chave de API para instanciar um objeto cliente.
Criar SchemaRegistryClient com a Credencial do Azure Active Directory
Você pode autenticar com o Azure Active Directory usando a biblioteca de Identidade do Azure. Observe que os pontos de extremidade regionais não dão suporte à autenticação do AAD. Crie um subdomínio personalizado para o recurso para usar esse tipo de autenticação.
Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, inclua o azure-identity
pacote:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.10.1</version>
</dependency>
Você também precisará registrar um novo aplicativo do AAD e conceder acesso ao serviço de Registro de Esquema.
Defina os valores da ID do cliente, da ID do locatário e do segredo do cliente do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID AZURE_CLIENT_SECRET.
Cliente assíncrono
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryAsyncClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildAsyncClient();
Sincronizar cliente
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
.build();
SchemaRegistryClient client = new SchemaRegistryClientBuilder()
.fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
.credential(azureCredential)
.buildClient();
Principais conceitos
Esquemas
Um esquema tem seis componentes:
- Nome do Grupo: o nome do grupo de esquemas na instância do Registro de Esquema.
- Nome do esquema: o nome do esquema.
- ID do esquema: a ID atribuída pela instância do Registro de Esquema para o esquema.
- Tipo de serialização: o formato usado para serialização do esquema. Por exemplo, Avro.
- Conteúdo do esquema: a representação de cadeia de caracteres do esquema.
- Versão do esquema: a versão atribuída ao esquema na instância do Registro de Esquema.
Esses componentes desempenham funções diferentes. Alguns são usados como entrada nas operações e alguns são saídas. Atualmente, SchemaProperties expõe apenas as propriedades que são saídas potenciais usadas em operações SchemaRegistry. Essas propriedades expostas são Content
e Id
.
Exemplos
Registrar um esquema
Registre um esquema a ser armazenado no Registro de Esquema do 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());
Recuperar as propriedades de um esquema
Recupere as propriedades de um esquema registrado anteriormente do Registro de Esquema do 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());
Recuperar um esquema
Recupere o conteúdo e as propriedades de um esquema registrado anteriormente do Registro de Esquema do 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());
Solução de problemas
Habilitando o registro em log
Os SDKs do Azure para Java oferecem uma história de registro em log consistente para ajudar a solucionar problemas de erros do aplicativo e agilizar a resolução. Os logs produzidos capturam o fluxo de um aplicativo antes que acessem o estado do terminal para ajudar a localizar o problema raiz. Exiba o wiki de log para obter diretrizes sobre como habilitar o registro em log.
Próximas etapas
Mais amostras podem ser encontradas aqui.
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder e de fato concede, os direitos de usar sua contribuição.
Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.