Registro de Esquema nos Hubs de Eventos do Azure
O Registro de Esquema nos Hubs de Eventos do Azure fornece um repositório para usar e gerenciar esquemas em cenários de streaming de eventos controlados por esquema.
Observação
O Schema Registry não é suportado na camada Básica.
Componentes do Registro de Esquema
Um namespace dos Hubs de Eventos pode hospedar grupos de esquema junto com os hubs de eventos (ou tópicos Kafka). É possível hospedar um registro de esquema e ter vários grupos de esquemas. Embora esteja hospedado nos Hubs de Eventos do Azure, o registro de esquema pode ser usado universalmente com todos os serviços de mensagem do Azure e outros agentes de eventos ou mensagens. Cada um desses grupos de esquema é um repositório separado e seguro para um conjunto de esquemas. É possível alinhar os grupos com um aplicativo específico ou uma unidade organizacional.
Grupos de esquemas
O grupo de esquemas é um grupo lógico de esquemas semelhantes baseado nos seus critérios de negócios. Um grupo de esquemas pode conter várias versões de um esquema. Em um grupo de esquemas, a configuração de imposição de compatibilidade ajuda a garantir que as versões mais recentes de esquemas sejam compatíveis com as anteriores.
O limite de segurança imposto pelo mecanismo de agrupamento ajuda a garantir que segredos comerciais não vazem acidentalmente por meio dos metadados em situações em que o namespace é compartilhado entre vários parceiros. Também permite que os proprietários de aplicativo gerenciem os esquemas independentemente de outros aplicativos que compartilham o mesmo namespace.
Esquemas
Os esquemas definem o contrato entre os produtores e os consumidores. Um esquema definido em um registro de esquema dos Hubs de Eventos ajuda a gerenciar o contrato fora dos dados de evento. Portanto, elimina a sobrecarga de conteúdo. Um esquema tem nome, tipo (exemplo: registro, matriz etc.), modo de compatibilidade (nenhum, encaminhado, retroativo, total) e tipo de serialização (Avro e JSON). É possível criar várias versões de um esquema, bem como recuperar e usar uma versão específica de um.
Formatos de esquema
Os formatos de esquema são usados para determinar a maneira como um esquema é estruturado e definido, com cada formato delineando diretrizes e sintaxes específicas para definir a estrutura dos eventos que serão usados para streaming de eventos.
Esquema Avro
Avro é um sistema popular de serialização de dados que usa um formato binário compacto e oferece funcionalidades para evolução de esquema.
Para saber mais sobre como usar o formato de esquema Avro com o Registro de Esquema dos Hubs de Eventos, confira:
- Como usar o registro de esquema com Kafka e Avro
- Como usar o registro de esquema com o SDK do .NET (AMQP) e o Avro nos Hubs de Eventos.
Esquema JSON
O Esquema JSON é uma maneira padronizada de definir a estrutura e os tipos de dados dos eventos. O Esquema JSON permite o uso seguro e confiável do formato de dados JSON no streaming de eventos.
Para saber mais sobre como usar o formato de esquema JSON com o Registro de Esquema dos Hubs de Eventos, confira:
Evolução do esquema
Os esquemas precisam evoluir com o requisito de negócios de produtores e consumidores. O Registro de Esquema do Azure dá suporte à evolução do esquema introduzindo modos de compatibilidade no nível do grupo de esquema. Ao criar um grupo de esquemas, você pode especificar o modo de compatibilidade dos esquemas que você inclui nele. Quando você atualiza um esquema, a alteração deve estar em conformidade com o modo de compatibilidade atribuído e, em seguida, ele cria uma nova versão do esquema.
Observação
A evolução do esquema só é compatível com o formato de esquema Avro.
O Registro de Esquema do Azure para Hubs de Eventos dá suporte aos modos de compatibilidade a seguir.
Compatibilidade com versões anteriores
O modo de compatibilidade com versões anteriores permite que o código do consumidor use uma nova versão do esquema, mas ele pode processar mensagens com uma versão antiga. Quando você usa o modo de compatibilidade com versões anteriores em um grupo de esquema, ele permite que as alterações a seguir sejam feitas em um esquema.
- Excluir campos.
- Adicionar campos opcionais.
Compatibilidade com encaminhamento
A compatibilidade de encaminhamento permite que o código do consumidor use uma versão antiga do esquema, mas ele pode ler mensagens com o novo esquema. O modo de compatibilidade de encaminhamento permite que as seguintes alterações sejam feitas em um esquema.
- Adicionar campos
- Excluir campos opcionais
Sem compatibilidade
Quando o modo de compatibilidade None
é usado, o registro de esquema não faz nenhuma verificação de compatibilidade quando você atualiza esquemas.
SDKs do cliente
É possível usar uma das bibliotecas a seguir para incluir um serializador Avro para serializar e desserializar conteúdos com identificadores de esquema do Registro de Esquema e dados codificados no Avro.
- .NET – Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java – azure-data-schemaregistry-avro
- Python – azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka – Execute serializadores e desserializadores Apache Avro integrados ao Kafka e compatíveis com o Registro de Esquema do Azure. O serializador de cliente Apache Kafka do cliente Java para o Registro de Esquema do Azure pode ser usado em cenários do Apache Kafka e com implantações ou serviços de nuvem baseados no Apache Kafka®.
- CLI do Azure – Para obter um exemplo de como adicionar um esquema a um grupo de esquemas usando a CLI, confira Como adicionar um esquema a um grupo de esquemas usando a CLI.
- PowerShell – Para obter um exemplo de como adicionar um esquema a um grupo de esquemas usando o PowerShell, confira Como adicionar um esquema a um grupo de esquemas usando o PowerShell.
Limites
Para saber os limites (por exemplo: número de grupos de esquemas em um namespace) do Hubs de Eventos, consulte Cotas e limites do Hubs de Eventos.
Controle de acesso baseado em função do Azure
Para acessar um registro de esquema de forma programática, siga estas etapas:
- Como registrar seu aplicativo no Microsoft Entra ID
- Adicione a entidade de segurança do aplicativo a uma das seguintes funções de controle de acesso baseado em função (RBAC do Azure) no nível namespace.
Função | Descrição |
---|---|
Proprietário | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Colaborador | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Leitor do Registro de Esquema | Ler e listar os grupos e os esquemas do Registro de Esquema. |
Colaborador do Registro de Esquema | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Para visualizar instruções sobre como criar o registro de um aplicativo usando o portal do Azure, confira Registrar um aplicativo com o Microsoft Entra ID. Anote a ID do cliente (ID do aplicativo), a ID do locatário e o segredo a ser usado no código.
Próximas etapas
- Para saber como criar um registro de esquema no portal do Azure, confira Criar um registro de esquema dos Hubs de Eventos no portal do Azure.
- Veja os exemplos de biblioteca de clientes Avro do Registro de Esquema a seguir.