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.
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 (por exemplo, registro, matriz etc.), modo de compatibilidade (nenhum, com versões posteriores, com versões anteriores, total) e tipo de serialização (somente o Avro por enquanto). É 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.