Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve os principais conceitos e funcionalidades associados aos tópicos de namespace.
Eventos
Um evento é a menor quantidade de informação que descreve completamente algo que aconteceu em um sistema. Um evento é frequentemente chamado de evento discreto porque representa um facto distinto e autónomo sobre um sistema que fornece uma visão acionável. Cada evento tem informações comuns, como source o evento, time o evento ocorrido e um identificador único. Cada evento também tem um type, que normalmente é um identificador único que descreve o tipo de anúncio para o qual o evento é utilizado.
Por exemplo, um evento sobre um novo ficheiro que está a ser criado no Armazenamento do Azure inclui detalhes sobre o ficheiro, tal como o valor lastTimeModified. Um evento de Hubs de Eventos tem a URL do arquivo capturado. Um evento sobre uma nova encomenda no seu microsserviço Orders pode ter um atributo orderId e um atributo de URL para a representação do estado da encomenda. Mais alguns exemplos de tipos de eventos incluem: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Aqui está um exemplo de evento:
{
"specversion" : "1.0",
"type" : "com.yourcompany.order.created",
"source" : "/orders/account/123",
"subject" : "O-28964",
"id" : "A234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"orderId" : "O-28964",
"URL" : "https://com.yourcompany/orders/O-28964"
}
}
Outro tipo de evento
A comunidade de utilizadores também se refere a mensagens que transportam um ponto de dados, como a leitura de um único dispositivo ou um clique numa página de aplicação web, como "eventos". Normalmente analisas este tipo de evento ao longo de uma janela temporal para obter insights e tomar uma ação. Na documentação do Event Grid, este tipo de evento é chamado de ponto de dados, dados em fluxo, ou simplesmente telemetria. A funcionalidade broker Message Queuing Telemetry Transport (MQTT) da Event Grid utiliza este tipo de evento, entre outros tipos de mensagens.
Suporte para CloudEvents
Os tópicos de espaço de nomes do Event Grid aceitam eventos que cumprem a especificação da norma aberta CloudEvents 1.0 da Cloud Native Computing Foundation (CNCF), utilizando a associação do protocolo HTTP com formato JSON. Um CloudEvent é um tipo de mensagem que contém o que está sendo comunicado, conhecido como dados de evento e metadados sobre ele. Os dados de evento em arquiteturas controladas por eventos normalmente carregam as informações anunciando uma alteração de estado do sistema. Os metadados CloudEvents consistem num conjunto de atributos que fornecem informação contextual sobre a mensagem, como a sua origem (o sistema de origem) e o seu tipo.
Para obter mais informações, consulte Suporte para o esquema CloudEvents.
Editores
Um publicador é a aplicação que envia eventos para o Event Grid. Pode ser a mesma aplicação onde os eventos se originaram, a fonte do evento. Você pode publicar eventos de seu próprio aplicativo ao usar tópicos de namespace.
Origens de eventos
A origem do evento é onde o evento ocorre. Cada fonte de evento oferece suporte a um ou mais tipos de evento. Por exemplo, seu aplicativo é a fonte de eventos personalizados que seu sistema define. Ao usar tópicos de namespace, as fontes de eventos suportadas são seus próprios aplicativos.
Espaços de nomes
Um namespace de Grade de Eventos é um contêiner de gerenciamento para os seguintes recursos:
| Recurso | Protocolo suportado |
|---|---|
| Tópicos de namespace | HTTP |
| Espaços Temáticos | MQTT |
| Clientes | MQTT |
| Grupos de Clientes | MQTT |
| Certificados de CA | MQTT |
| Ligações de permissão | MQTT |
Com um namespace da Grade de Eventos do Azure, você pode agrupar recursos relacionados e gerenciá-los como uma única unidade em sua assinatura do Azure. Dá-lhe um nome de domínio totalmente qualificado (FQDN) exclusivo.
Um namespace expõe dois extremos:
- Um ponto de extremidade HTTP para dar suporte a requisitos gerais de mensagens usando tópicos de namespace.
- Um ponto terminal MQTT para mensagens de IoT ou soluções que utilizam MQTT.
Um espaço de nomes também fornece pontos finais de rede integrados com o DNS. Ele também fornece uma gama de controle de acesso e recursos de gerenciamento de integração de rede, como filtragem de entrada de IP público e links privados. É também o contêiner de identidades gerenciadas usado para recursos contidos no namespace.
Aqui estão mais alguns pontos sobre namespaces:
- O namespace é um recurso controlado com
tagselocationpropriedades e, uma vez criado, pode ser encontrado emresources.azure.com. - O nome do namespace pode ter de 3 a 50 caracteres. Pode incluir caracteres alfanuméricos e hífenes (-), sem espaços.
- O nome precisa ser exclusivo por região.
Unidades de débito
As unidades de taxa de transferência (TUs) definem a capacidade da taxa de eventos de entrada e saída em namespaces. Para obter mais informações, consulte Cotas e limites da Grade de Eventos do Azure.
Tópicos
Um tópico contém eventos que foram publicados na Grade de Eventos. Normalmente, você usa um recurso de tópico para uma coleção de eventos relacionados. Os tópicos dentro de um namespace são frequentemente chamados de tópicos de namespace.
Tópicos de namespace
Os tópicos de espaço de nomes são tópicos criados dentro de um espaço de nomes do Event Grid. A sua aplicação publica eventos num ponto final HTTP de um espaço de nomes, especificando um tópico do espaço de nomes no qual os eventos publicados ficam logicamente contidos. Quando desenhares a tua aplicação, decide quantos temas criar. Para soluções relativamente grandes, crie um tópico de namespace para cada categoria de eventos relacionados. Por exemplo, considere um aplicativo que gerencia contas de usuário e outro aplicativo sobre pedidos de clientes. É improvável que todos os assinantes de eventos queiram eventos de ambos os aplicativos. Para segregar preocupações, crie dois tópicos de namespace: um para cada aplicativo. Permita que os consumidores de eventos se inscrevam no tópico de acordo com suas necessidades. Para soluções pequenas, você pode preferir enviar todos os eventos para um único tópico.
Os tópicos de namespace suportam entrega por pull e entrega por push. Veja quando usar a entrega pull ou push para o ajudar a decidir se a entrega pull é a abordagem adequada face aos seus requisitos.
Subscrições de eventos
Uma assinatura de evento é um recurso de configuração associado a um único tópico. Entre outras coisas, você usa uma assinatura de evento para definir os critérios de seleção de eventos para definir a coleção de eventos disponível para um assinante fora do conjunto total de eventos disponíveis em um tópico. Você pode filtrar eventos de acordo com os requisitos do assinante. Por exemplo, você pode filtrar eventos por tipo de evento. Você também pode definir critérios de filtro em propriedades de dados de evento se estiver usando um objeto JSON como o valor para a propriedade de dados . Para obter mais informações sobre as propriedades do recurso, procure operações do plano de controlo na API REST do Event Grid.
Para obter um exemplo de criação de assinaturas para tópicos de namespace, consulte Publicar e consumir mensagens usando tópicos de namespace usando CLI.
Nota
As assinaturas de eventos em um tópico de namespace apresentam um modelo de recurso simplificado quando comparado ao usado para tópicos personalizados, de domínio, de parceiro e de sistema (Grade de Eventos Básica). Para obter mais informações, consulte Criar, exibir e gerenciar assinaturas de eventos.
Entrega puxada
Com a entrega pull, seu aplicativo se conecta à Grade de Eventos para ler mensagens usando semântica semelhante a uma fila. À medida que as aplicações se ligam à Grade de Eventos para consumir eventos, controlam a taxa de consumo e o momento de consumo. As aplicações consumidoras também podem utilizar pontos finais privados ao ligarem-se ao Event Grid para ler eventos através de espaço de endereçamento IP privado.
A entrega pull suporta as seguintes operações para ler mensagens e controlar o estado da mensagem: receber, reconhecer, liberar, rejeitar e renovar bloqueio. Para mais informações, consulte Descrição geral da entrega por solicitação.
Estrutura dos dados ao receber eventos usando entrega por solicitação
Quando entrega eventos usando pull delivery, o Event Grid inclui um conjunto de objetos que, por sua vez, inclui os objetos event e brokerProperties . O valor da propriedade event é o CloudEvent fornecido no modo de conteúdo estruturado. O objeto brokerProperties contém o token de bloqueio associado ao CloudEvent entregue. O seguinte objeto JSON é uma resposta de exemplo de uma operação de receção que devolve dois eventos:
{
"value": [
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
"deliveryCount": 2
},
"event": {
"specversion": "1.0",
"id": "A234-1234-1235",
"source": "/mycontext",
"time": "2018-04-05T17:31:00Z",
"type": "com.example.someeventtype",
"data": "some data"
}
},
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
"deliveryCount": 1
},
"event": {
"specversion": "1.0",
"id": "B688-1234-1235",
"source": "/mycontext",
"type": "com.example.someeventtype",
"time": "2018-04-05T17:31:00Z",
"data": {
"somekey" : "value",
"someOtherKey" : 9
}
}
}
]
}
Entrega automática
Com a entrega por push, o Event Grid envia eventos para um destino configurado numa subscrição de eventos push (modo de entrega). Fornece um mecanismo robusto de repetição caso o destino não consiga receber eventos.
Importante
Atualmente, a entrega por push dos namespaces da Grade de Eventos suporta o Hubs de Eventos do Azure como destino. No futuro, os namespaces da Grade de Eventos darão suporte a mais destinos, incluindo todos os destinos suportados pelo Event Grid Basic.
Entrega de eventos do Event Hubs
O Event Grid utiliza o SDK Event Hubs para enviar eventos para Event Hubs usando AMQP. Os eventos são enviados como uma matriz de bytes com cada elemento na matriz contendo um CloudEvent.
Entrega por push e pull
A Grade de Eventos oferece suporte à entrega de eventos push e pull usando HTTP. Com a entrega push, define um destino numa subscrição de eventos, num webhook ou num serviço do Azure, na qual o Event Grid envia eventos. Com a entrega por pedido, as aplicações subscritoras ligam-se ao Event Grid para consumir eventos. A entrega pull é suportada para tópicos em um namespace Event Grid.
Importante
Os Hubs de Eventos são suportados como um destino para assinaturas de tópicos de namespace. Nas próximas versões, os espaços de nomes do Event Grid suportarão todos os destinos atualmente disponíveis no Event Grid Basic, bem como destinos adicionais.
Quando usar a entrega por push vs. entrega por pull
Seguem-se orientações gerais para o ajudar a decidir quando utilizar a entrega por pull ou push.
Entrega puxada
- Você precisa de controle total sobre quando receber eventos. Por exemplo, seu aplicativo pode não estar ativo o tempo todo, não ser estável o suficiente ou você processar dados em determinados momentos.
- Você precisa de controle total sobre o consumo de eventos. Por exemplo, um serviço ou camada downstream em seu aplicativo de consumidor tem um problema que impede que você processe eventos. Nesse caso, a API de entrega pull permite que o aplicativo do consumidor libere um evento já lido de volta ao corretor para que possa ser entregue posteriormente.
- Você deseja usar links privados ao receber eventos, o que só é possível com a entrega pull, não com a entrega push.
- Não pode expor um ponto final nem utilizar entrega push, mas pode ligar-se ao Event Grid para consumir eventos.
Entrega automática
- Você deseja evitar sondagens constantes para determinar se ocorreu uma alteração no estado do sistema. Em vez disso, utilize o Event Grid para lhe enviar eventos quando ocorrerem alterações de estado.
- Você tem um aplicativo que não pode fazer chamadas de saída. Por exemplo, sua organização pode estar preocupada com a exfiltração de dados. No entanto, a sua aplicação pode receber eventos através de um ponto terminal público.
Conteúdos relacionados
- Para obter uma introdução ao Event Grid, veja Sobre o Azure Event Grid.
- Para começar com tópicos de espaço de nomes, consulte Publicar eventos usando tópicos de espaço de nomes.