Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um domínio de eventos no Grade de Eventos do Azure fornece um único endpoint de publicação para milhares de tópicos individuais relacionados à mesma aplicação. Você pode pensar em um domínio de eventos como um metatópico que contém muitos tópicos individuais. Ao publicar um evento, o editor deve especificar o tópico de destino no domínio de evento no qual deseja publicar. O publicador pode enviar uma matriz ou um lote de eventos em que os eventos são enviados para tópicos diferentes no domínio do evento. Para obter detalhes, consulte Publicar em um domínio de evento.
Os domínios de eventos também permitem que você controle a autorização e a autenticação de cada tópico, para que seja possível particionar seus locatários. Este artigo descreve como usar domínios de eventos para gerenciar o fluxo de eventos personalizados para várias organizações comerciais, clientes ou aplicativos. Use domínios de eventos para:
- Gerenciar arquiteturas orientadas por eventos multilocatário em escala.
- Gerencie sua autenticação e autorização.
- Particionar tópicos sem gerenciar cada um individualmente.
- Evitar publicar individualmente em cada um dos pontos de extremidade do tópico.
Exemplo de caso de uso de domínio de eventos
Os domínios de eventos são mais facilmente explicados usando um exemplo. Digamos que você administre a Contoso Construction Machinery, que fabrica tratores, equipamentos de escavação e outras máquinas pesadas. Como parte da execução dos negócios, você envia informações em tempo real aos clientes sobre manutenção de equipamentos, integridade de sistemas e atualizações de contrato. Todas essas informações vão para vários pontos de extremidade, incluindo seu aplicativo, pontos de extremidade do cliente e outras infraestruturas que seus clientes configuraram.
Domínios de eventos permitem que você modele a Contoso Construction Machinery como uma única entidade da Grade de Eventos. Cada um dos seus clientes é representado como um tópico dentro do domínio. A autenticação e a autorização são tratadas usando o Microsoft Entra ID. Cada um de seus clientes pode se inscrever no tópico deles e receber os eventos deles. O acesso gerenciado por meio do domínio do evento garante que eles possam acessar apenas o tópico deles.
Além disso, também fornece um ponto de extremidade exclusivo, em que todos os eventos de cliente podem ser publicados. A Event Grid cuidará de garantir que cada tópico esteja ciente dos eventos definidos para o locatário.
Gerenciamento de acesso para domínios de eventos
Os domínios de eventos fornecem autorização de granulação fina e controle de autenticação sobre cada tópico por meio do controle de acesso baseado em função do Azure (RBAC do Azure). Use as funções do Azure RBAC para restringir cada locatário do seu aplicativo somente aos tópicos aos quais você deseja conceder acesso. O Azure RBAC em domínios de eventos funciona da mesma maneira que o controle de acesso gerenciado no restante da Grade de Eventos e do Azure. Use o Azure RBAC para criar e impor definições de função personalizadas em domínios de eventos.
Funções internas para domínios de eventos
A Grade de Eventos tem duas definições de função internas que facilitam Azure RBAC para trabalhar com domínios de eventos:
- Colaborador de EventGrid EventSubscription
- Leitor de Assinatura de Evento do EventGrid
Atribua essas funções a usuários que precisam assinar tópicos em seu domínio de eventos. Limite cada atribuição de função apenas ao tópico em que o usuário precisa se inscrever. Para obter informações sobre essas funções, consulte Funções internas da grade de eventos.
Inscrever-se em tópicos em um domínio de eventos
Assinar eventos para um tópico em um domínio de eventos é o mesmo que Criar uma assinatura de evento em um tópico personalizado ou inscrever-se em um evento de um serviço do Azure.
Importante
Um tópico de domínio é um recurso gerenciado automaticamente na Grade de Eventos. Você pode criar uma assinatura de evento no escopo do domínio sem criar antes o tópico de domínio. Nesse caso, a Grade de Eventos cria automaticamente o tópico de domínio em seu nome. Você também pode optar por criar o tópico de domínio manualmente. Esse comportamento reduz o número de recursos que você precisa gerenciar ao trabalhar com um grande número de tópicos de domínio. Quando a última assinatura de um tópico de domínio é excluída, o tópico de domínio também é excluído, independentemente de o tópico de domínio ter sido criado manualmente ou criado automaticamente.
Assinaturas de escopo de domínio
Os domínios de eventos também dão suporte a assinaturas de escopo de domínio. Uma assinatura de evento no escopo de um domínio de eventos recebe todos os eventos enviados ao domínio de eventos, independentemente do tópico para o qual os eventos são enviados. As assinaturas de escopo de domínio são úteis para cenários de gerenciamento e auditoria.
Publicação em um domínio de evento
Quando você cria um domínio de eventos, o Event Grid fornece um endpoint de publicação semelhante ao de um tópico personalizado. Para publicar eventos em qualquer tópico em um domínio de eventos, envie os eventos ao ponto de extremidade do domínio de eventos da mesma forma que faria para um tópico personalizado. A única diferença é que você deve especificar o tópico ao qual o evento deve ser entregue. Por exemplo, publicar o seguinte array de eventos envia o evento com "id": "1111" para o tópico foo e o evento com "id": "2222" para o tópico bar.
Observação
Os domínios de eventos não dão suporte a cenários de transmissão em que um evento é enviado para um domínio de evento e cada tópico no domínio recebe uma cópia do evento. Ao publicar eventos, o publicador deve especificar o tópico de destino no domínio de eventos no qual deseja publicar. Para publicar o mesmo payload do evento em vários tópicos no domínio de eventos, o publicador deve duplicar o payload do evento, alterar o nome do tópico em cada cópia e publicá-las na Grade de Eventos usando o ponto de extremidade do domínio de eventos, individualmente ou em lote.
Ao usar o esquema de eventos de nuvem, especifique o nome do tópico da Grade de Eventos no domínio do evento como o valor da source propriedade. No exemplo a seguir, a propriedade source é definida como foo para o primeiro evento e como bar para o segundo evento.
Para usar um campo diferente para especificar o tópico de destino no domínio do evento, configure o mapeamento de esquema de entrada ao criar o domínio do evento. Para a API REST, use a propriedade properties.inputSchemaMapping para mapear esse campo para properties.topic. Para o SDK do .NET, use EventGridJsonInputSchemaMapping. Outros SDKs também dão suporte ao mapeamento de esquema.
[{
"source": "foo",
"id": "1111",
"type": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"time": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"specversion": "1.0"
},
{
"source": "bar",
"id": "2222",
"type": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"time": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"specversion": "1.0"
}]
Os domínios de eventos tratam da publicação de tópicos para você. Em vez de publicar eventos em cada tópico individualmente, você publica todos os eventos no ponto de extremidade do domínio do evento e a Grade de Eventos roteia cada evento para o tópico correto.
Preços do domínio do evento
Os domínios de eventos usam o mesmo preço de operações que outros recursos na Grade de Eventos. As operações funcionam da mesma forma em domínios de eventos como em tópicos personalizados:
- Cada entrada de um evento para um domínio de evento é uma operação.
- Cada tentativa de entrega de um evento é uma operação.
Conteúdo relacionado
Para saber como configurar domínios de eventos, criar tópicos, criar inscrições de eventos e publicar eventos, consulte Gerenciar domínios de eventos.