Biblioteca cliente de Azure Schema Registry para Java: versión 1.3.10

Azure Schema Registry es un servicio de repositorio de esquemas hospedado por Azure Event Hubs, lo que proporciona almacenamiento de esquemas, control de versiones y administración. Las aplicaciones aprovechan el registro para reducir el tamaño de la carga al describir la estructura de carga con identificadores de esquema en lugar de esquemas completos.

Código | fuentePaquete (Maven) | Documentación | de referencia de APIDocumentación | del productoMuestras

Introducción

Requisitos previos

Inclusión del paquete

Inclusión del archivo BOM

Incluya azure-sdk-bom en el proyecto para depender de la versión de disponibilidad general (GA) de la biblioteca. En el fragmento de código siguiente, reemplace el marcador de posición {bom_version_to_target} por el número de versión. Para más información sobre la lista de materiales, consulte EL ARCHIVO LÉAME BOM del SDK de 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>

y, a continuación, incluya la dependencia directa en la sección dependencias sin la etiqueta de versión, como se muestra a continuación.

<dependencies>
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-data-schemaregistry</artifactId>
    </dependency>
</dependencies>

Inclusión de dependencias directas

Si quiere depender de una versión determinada de la biblioteca que no está presente en la lista de materiales, agregue la dependencia directa al proyecto como se indica a continuación.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-data-schemaregistry</artifactId>
  <version>1.3.10</version>
</dependency>

Autenticar el cliente

Para interactuar con el servicio Azure Schema Registry, deberá crear una instancia de la SchemaRegistryClient clase a través de SchemaRegistryClientBuilder. Necesitará un punto de conexión y una clave de API para crear instancias de un objeto de cliente.

Creación de schemaRegistryClient con credenciales de Azure Active Directory

Puede autenticarse con Azure Active Directory mediante la biblioteca de identidades de Azure. Tenga en cuenta que los puntos de conexión regionales no admiten la autenticación de AAD. Cree un subdominio personalizado para el recurso con el fin de usar este tipo de autenticación.

Para usar el proveedor DefaultAzureCredential que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, incluya el azure-identity paquete:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.10.1</version>
</dependency>

También deberá registrar una nueva aplicación de AAD y conceder acceso al servicio Registro de esquemas.

Establezca los valores del identificador de cliente, el identificador de inquilino y el secreto de cliente de la aplicación de AAD como variables de entorno: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

Cliente asincrónico
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
    .build();
SchemaRegistryAsyncClient client = new SchemaRegistryClientBuilder()
    .fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
    .credential(azureCredential)
    .buildAsyncClient();
Cliente de sincronización
DefaultAzureCredential azureCredential = new DefaultAzureCredentialBuilder()
    .build();
SchemaRegistryClient client = new SchemaRegistryClientBuilder()
    .fullyQualifiedNamespace("https://<your-schema-registry-endpoint>.servicebus.windows.net")
    .credential(azureCredential)
    .buildClient();

Conceptos clave

Esquemas

Un esquema tiene 6 componentes:

  • Nombre del grupo: nombre del grupo de esquemas en la instancia del Registro de esquemas.
  • Nombre del esquema: nombre del esquema.
  • Id. de esquema: identificador asignado por la instancia del Registro de esquema para el esquema.
  • Tipo de serialización: formato usado para la serialización del esquema. Por ejemplo, Avro.
  • Contenido del esquema: representación de cadena del esquema.
  • Versión del esquema: la versión asignada al esquema en la instancia del Registro de esquemas.

Estos componentes desempeñan diferentes roles. Algunos se usan como entrada en las operaciones y algunos son salidas. Actualmente, SchemaProperties solo expone esas propiedades que son posibles salidas que se usan en las operaciones SchemaRegistry. Esas propiedades expuestas son Content y Id.

Ejemplos

Registro de un esquema

Registre un esquema que se va a almacenar en azure Schema Registry.

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 las propiedades de un esquema

Recupere las propiedades de un esquema registrado anteriormente de Azure Schema Registry.

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 un esquema

Recupere el contenido y las propiedades de un esquema registrado anteriormente del Registro de esquemas de 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());

Solución de problemas

Habilitar el registro

Los SDK de Azure para Java ofrecen una historia de registro coherente para ayudar a solucionar errores de aplicación y acelerar su resolución. Los registros generados capturarán el flujo de una aplicación antes de alcanzar el estado terminal para ayudar a encontrar el problema raíz. Vea la wiki de registro para obtener instrucciones sobre cómo habilitar el registro.

Pasos siguientes

Puede encontrar más ejemplos aquí.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.

Impresiones