Biblioteca de clientes do Registro de Esquema do Azure para .NET – versão 1.3.0
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 serializadores para reduzir o tamanho da carga enquanto descreve a estrutura de carga com identificadores de esquema em vez de esquemas completos.
Introdução
Instalar o pacote
Instale a biblioteca de clientes do Registro de Esquema do Azure para .NET com o NuGet:
dotnet add package Azure.Data.SchemaRegistry
Pré-requisitos
Se você precisar criar um namespace dos Hubs de Eventos, poderá usar o Portal do Azure ou Azure PowerShell.
Você pode usar Azure PowerShell para criar o namespace dos Hubs de Eventos com o seguinte comando:
New-AzEventHubNamespace -ResourceGroupName myResourceGroup -NamespaceName namespace_name -Location eastus
Autenticar o cliente
Para interagir com o serviço registro de esquema do Azure, você precisará criar uma instância da classe Cliente do Registro de Esquema . Para criar esse cliente, você precisará de credenciais de recurso do Azure e do nome do host do namespace dos Hubs de Eventos.
Obter credenciais
Para adquirir credenciais autenticadas e começar a interagir com recursos do Azure, consulte o guia de início rápido aqui.
Obter nome do host do namespace dos Hubs de Eventos
A maneira mais simpliest é usar o portal do Azure e navegar até o namespace dos Hubs de Eventos. Na guia Visão geral, você verá Host name
. Copie o valor desse campo.
Criar SchemaRegistryClient
Depois de ter as credenciais de recurso do Azure e o nome do host do namespace dos Hubs de Eventos, você poderá criar o SchemaRegistryClient. Você também precisará do pacote Azure.Identity para criar a 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());
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.
- Formato de esquema: 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
.
Acesso thread-safe
Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.
Conceitos adicionais
Opções | do cliente Acessando a resposta | Operações de execução prolongada | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida do cliente
Exemplos
O exemplo a seguir mostra exemplos do que está disponível por meio do SchemaRegistryClient
. Há métodos de sincronização e assíncrono disponíveis para essas operações de cliente.
Registrar um esquema
Registre um esquema a ser armazenado no Registro de Esquema do Azure.
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 uma ID de esquema
Recupere uma ID de esquema registrada anteriormente do Registro de Esquema do 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 um esquema
Recupere o conteúdo de um esquema registrado anteriormente do Registro de Esquema do Azure com uma ID de esquema ou o nome do grupo, o nome do esquema e a versão.
SchemaRegistrySchema schema = client.GetSchema(schemaId);
string definition = schema.Definition;
SchemaRegistrySchema schema = client.GetSchema(groupName, name, version);
string definition = schema.Definition;
Solução de problemas
Informações sobre etapas de solução de problemas serão fornecidas à medida que possíveis problemas forem descobertos.
Próximas etapas
Consulte Registro de Esquema do Azure para obter informações adicionais.
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. Para obter detalhes, visite cla.microsoft.com.
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.
Azure SDK for .NET