Compartir a través de


Biblioteca cliente de Azure Schema Registry para .NET: versión 1.3.0

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. Los serializadores aprovechan el registro para reducir el tamaño de carga al describir la estructura de carga con identificadores de esquema en lugar de esquemas completos.

Introducción

Instalar el paquete

Instale la biblioteca cliente de Azure Schema Registry para .NET con NuGet:

dotnet add package Azure.Data.SchemaRegistry

Requisitos previos

Si necesita crear un espacio de nombres de Event Hubs, puede usar Azure Portal o Azure PowerShell.

Puede usar Azure PowerShell para crear el espacio de nombres de Event Hubs con el siguiente comando:

New-AzEventHubNamespace -ResourceGroupName myResourceGroup -NamespaceName namespace_name -Location eastus

Autenticar el cliente

Para interactuar con el servicio Azure Schema Registry, deberá crear una instancia de la clase Client del Registro de esquema . Para crear este cliente, necesitará credenciales de recursos de Azure y el nombre de host del espacio de nombres de Event Hubs.

Obtener credenciales

Para adquirir credenciales authenicated y empezar a interactuar con los recursos de Azure, consulte la guía de inicio rápido aquí.

Obtención del nombre de host del espacio de nombres de Event Hubs

La manera más sencilla es usar el Azure Portal y navegar al espacio de nombres de Event Hubs. En la pestaña Información general, verá Host name. Copie el valor de este campo.

Creación de SchemaRegistryClient

Una vez que tenga las credenciales de recurso de Azure y el nombre de host del espacio de nombres de Event Hubs, puede crear schemaRegistryClient. También necesitará el paquete Azure.Identity para crear la credencial.

// Create a new SchemaRegistry client using the default credential from Azure.Identity using environment variables previously set,
// including AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID.
// For more information on Azure.Identity usage, see: https://github.com/Azure/azure-sdk-for-net/blob/Azure.Data.SchemaRegistry_1.3.0/sdk/identity/Azure.Identity/README.md
var client = new SchemaRegistryClient(fullyQualifiedNamespace: fullyQualifiedNamespace, credential: new DefaultAzureCredential());

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.
  • Formato de esquema: formato utilizado 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.

Seguridad para subprocesos

Garantizamos que todos los métodos de instancia de cliente sean seguros para subprocesos e independientes entre sí (guía). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.

Conceptos adicionales

Opciones | de cliente Acceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente

Ejemplos

A continuación se muestran ejemplos de lo que está disponible a través de SchemaRegistryClient. Hay métodos sincronizados y asincrónicos disponibles para estas operaciones de cliente.

Registro de un esquema

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

string name = "employeeSample";
SchemaFormat format = SchemaFormat.Avro;
// Example schema's definition
string definition = @"
{
   ""type"" : ""record"",
    ""namespace"" : ""TestSchema"",
    ""name"" : ""Employee"",
    ""fields"" : [
    { ""name"" : ""Name"" , ""type"" : ""string"" },
    { ""name"" : ""Age"", ""type"" : ""int"" }
    ]
}";

Response<SchemaProperties> schemaProperties = client.RegisterSchema(groupName, name, definition, format);

Recuperar un identificador de esquema

Recupere un identificador de esquema registrado anteriormente del Registro de esquemas de Azure.

string name = "employeeSample";
SchemaFormat format = SchemaFormat.Avro;
// Example schema's content
string content = @"
{
   ""type"" : ""record"",
    ""namespace"" : ""TestSchema"",
    ""name"" : ""Employee"",
    ""fields"" : [
    { ""name"" : ""Name"" , ""type"" : ""string"" },
    { ""name"" : ""Age"", ""type"" : ""int"" }
    ]
}";

SchemaProperties schemaProperties = client.GetSchemaProperties(groupName, name, content, format);
string schemaId = schemaProperties.Id;

Recuperar un esquema

Recupere el contenido de un esquema registrado anteriormente de Azure Schema Registry con un identificador de esquema o el nombre del grupo, el nombre del esquema y la versión.

SchemaRegistrySchema schema = client.GetSchema(schemaId);
string definition = schema.Definition;
SchemaRegistrySchema schema = client.GetSchema(groupName, name, version);
string definition = schema.Definition;

Solución de problemas

Se proporcionará información sobre los pasos de solución de problemas a medida que se detecten posibles problemas.

Pasos siguientes

Consulte Azure Schema Registry para más información.

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. Para obtener más información, visite cla.microsoft.com.

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