Partilhar via


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

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.

Impressões