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.
Este artigo descreve os principais conceitos e funcionalidades associados aos tópicos do namespace.
Eventos
Um evento é a menor quantidade de informações que descreve por completo algo que aconteceu em um sistema. Um evento geralmente é chamado de evento discreto porque representa um fato distinto e autônomo sobre um sistema que fornece insights acionáveis. Todos os eventos apresentam informações comuns como a source do evento, a time em que o evento ocorreu e um identificador exclusivo. Cada evento também tem um type, que geralmente é um identificador exclusivo que descreve o tipo de anúncio para o qual o evento é usado.
Por exemplo, um evento sobre um novo arquivo que está sendo criado no Armazenamento do Azure traz detalhes sobre o arquivo, como o valor lastTimeModified. Um evento de Hubs de Eventos tem a URL do arquivo capturado. Um evento sobre um novo pedido no seu microsserviço de Pedidos pode ter um atributo orderId e um atributo URL com a representação do estado do pedido. Mais alguns exemplos de tipos de evento incluem: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Veja 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 usuários também se refere a mensagens que carregam um ponto de dados, como uma única leitura de dispositivo ou um clique em uma página de aplicativo Web, como "eventos". Normalmente, você analisa esse tipo de evento em uma janela de tempo para derivar insights e executar uma ação. Na documentação da Grade de Eventos, esse tipo de evento é chamado de ponto de dados, dados de streaming ou simplesmente telemetria. O recurso de broker MQTT do Grade de Eventos usa esse tipo de evento, entre outros tipos de mensagens.
Suporte ao CloudEvents
Os tópicos de namespace do Event Grid aceitam eventos em conformidade com a especificação do padrão aberto CloudEvents 1.0 da Cloud Native Computing Foundation (CNCF), usando a vinculação de 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 do CloudEvents consistem em um conjunto de atributos que fornecem informações contextuais sobre a mensagem, como onde ela se originou (o sistema de origem) e seu tipo.
Para obter mais informações, confira Suporte ao esquema do CloudEvents.
Publicadores
Um publicador é a aplicação que envia eventos para o Event Grid. Pode ser o mesmo aplicativo em que os eventos se originaram, a origem do evento. Você poderá publicar eventos por meio do seu aplicativo ao usar tópicos de namespace.
Origens de eventos
A origem de um evento é onde o evento acontece. Cada origem do evento dá suporte a um ou mais tipos de evento. Por exemplo, seu aplicativo é a origem do evento para eventos personalizados definidos pelo sistema. Ao usar tópicos de namespace, as fontes de evento compatíveis são seus próprios aplicativos.
Namespaces
Um namespace da Grade de Eventos é um contêiner de gerenciamento para os seguintes recursos:
| Recurso | Protocolo com suporte |
|---|---|
| Tópicos de namespace | HTTP |
| Espaços de tópicos | MQTT |
| Clientes | MQTT |
| Grupos de Clientes | MQTT |
| Certificados da Autoridade Certificadora | MQTT |
| Vinculações de permissão | MQTT |
Usando um namespace do Grade de Eventos do Azure, você pode agrupar recursos relacionados e gerenciá-los como uma única unidade na sua assinatura do Azure. Ele fornece a você um FQDN (nome de domínio totalmente qualificado) único.
Um namespace expõe dois pontos de extremidade:
- Um endpoint HTTP para dar suporte a requisitos gerais de mensagens usando tópicos de namespace.
- Um ponto de extremidade MQTT para mensagens IoT ou soluções que usam o MQTT.
Um namespace também fornece pontos de extremidade de rede integrados ao DNS. Também fornece uma variedade de recursos de controle de acesso e 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 os recursos contidos no namespace.
Veja a seguir mais algumas observações sobre namespaces:
- Um namespace é um recurso rastreado com
tagspropriedades elocation. Depois de criá-lo, você pode encontrá-lo emresources.azure.com. - O nome do namespace pode ter entre 3 e 50 caracteres. Pode incluir caracteres alfanuméricos, hífens (-) e nenhum espaço.
- O nome precisa ser exclusivo por região.
Unidades de transferência
As TUs (unidades de produtividade) definem a capacidade de taxa de evento de entrada e saída em namespaces. Para obter mais informações, consulte Cotas e limites da Grade de Eventos do Azure.
Autoscale
O dimensionamento automático ajusta automaticamente o número de unidades de taxa de transferência atribuídas a um namespace do Event Grid com base no tráfego em tempo real e na utilização de recursos. Ele monitora continuamente os principais indicadores-chave de desempenho e escala a capacidade dentro dos limites mínimos e máximos que você configura. Esse comportamento ajuda a manter desempenho consistente durante picos de carga de trabalho e reduz custos em períodos de baixa atividade sem necessidade de intervenção manual.
Para usar o Autoscale, você o habilita no namespace e especifica:
- Unidades de rendimento mínimo: O mínimo de capacidade. O namespace não escala abaixo desse valor.
- Unidades de máximo rendimento: O teto de capacidade. O namespace não escala acima desse valor.
O Event Grid avalia a utilização com base na entrada de eventos, na saída de eventos, nas taxas de publicação de entrada e de saída do MQTT e na contagem de clientes MQTT registrados. Quando qualquer categoria ultrapassa o limite de escalonamento, mais TUs são provisionadas. Quando todas as categorias ficam abaixo do limite de redução de escala, as TUs são liberadas. Períodos de recarga entre as operações de escalonamento evitam oscilações rápidas.
O escalonamento automático é útil para cargas de trabalho de MQTT, em que a distribuição de mensagens e o crescimento das assinaturas podem mudar rapidamente à medida que os dispositivos se conectam e se desconectam. Também é valioso para cargas de trabalho de corretores de eventos com padrões de tráfego explosivos.
Para detalhes de configuração e limites de capacidade por TU, veja a visão geral e o guiaprático do Autoscale.
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. Tópicos dentro de um namespace geralmente são chamados de tópicos de namespace.
Tópicos de namespace
Os tópicos de namespace são tópicos criados em um namespace da Grade de Eventos. Seu aplicativo publica eventos em um ponto de extremidade HTTP do namespace, especificando um tópico do namespace no qual os eventos publicados são logicamente agrupados. Ao projetar seu aplicativo, decida quantos tópicos 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 receber eventos dos dois aplicativos. Para separar as preocupações, crie dois tópicos de namespace: um para cada aplicativo. Permita que os consumidores de eventos assinem o tópico de acordo com seus requisitos. Para soluções pequenas, você pode preferir enviar todos os eventos para um único tópico.
Os tópicos de namespace dão suporte à entrega de pull e entrega de push. Confira quando usar a entrega push ou pull para ajudar a decidir se a entrega pull é a abordagem certa, considerando seus requisitos.
Inscrições em eventos
Uma assinatura de evento é um recurso de configuração associado a um só tópico. Entre outras coisas, use uma assinatura de evento para definir os critérios de seleção de eventos e definir a coleção de eventos disponível para um assinante a partir do conjunto total de eventos disponíveis em um tema. Você pode filtrar eventos de acordo com os requisitos do assinante. Por exemplo, você pode filtrar eventos por seu tipo de evento. Você também pode definir critérios de filtro para as propriedades dos dados do evento se usar um objeto JSON como valor para a propriedade dos dados . Para mais informações sobre propriedades de recursos, consulte a documentação da API REST da Grade de Eventos.
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 a CLI.
Observação
As assinaturas de eventos sob um tópico de namespace apresentam um modelo de recursos simplificado quando comparados ao modelo usado para tópicos personalizados, de domínio, parceiros e de sistema (Event Grid Basic). Para obter mais informações, confira Criar, exibir e gerenciar assinaturas de eventos.
Entrega pull
Com a entrega de pull, seu aplicativo se conecta à Grade de Eventos para ler mensagens usando semântica semelhante à fila. À medida que os aplicativos se conectam ao Event Grid para consumir eventos, eles controlam a taxa e o momento do consumo de eventos. As aplicações cliente também podem usar pontos de extremidade privados ao se conectar ao Event Grid para ler eventos usando um espaço de IP privado.
A entrega de pull dá suporte às seguintes operações para ler mensagens e controlar o estado da mensagem: receber, confirmar, liberar, rejeitar e renovar bloqueio. Para obter mais informações, consulte Visão geral de entrega de pull.
Formato dos dados ao receber eventos com entrega por pull
Quando você entrega eventos usando a entrega por pull, a Grade de Eventos inclui uma matriz de objetos que, por sua vez, inclui os objetos evento e brokerProperties . O valor da propriedade event é o CloudEvent entregue 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 recebimento que retorna 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 por push
Com a entrega de push, a Grade de Eventos envia eventos para um destino configurado em uma assinatura de evento push (modo de entrega). Ele fornece uma lógica de repetição robusta caso o destino não possa receber eventos.
Importante
Atualmente, a entrega por push dos namespaces do Azure Event Grid dá suporte a 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 compatíveis com o Event Grid Basic.
Entrega de eventos do Event Hubs
O Event Grid usa o SDK do Event Hubs para enviar eventos ao Event Hubs usando AMQP. Os eventos são enviados como uma matriz de bytes com cada elemento na matriz que contém um CloudEvent.
Entrega push e pull
Usando o HTTP, a Grade de Eventos dá suporte às entregas push e pull de eventos. Com a entrega de push, você define um destino em uma assinatura de evento, um webhook ou um serviço do Azure para o qual a Grade de Eventos enviará os eventos. Com a entrega pull, os aplicativos assinantes se conectam à Grade de Eventos para consumir os eventos. A entrega de pull tem suporte para tópicos em um namespace da Grade de Eventos.
Importante
Event Hubs é compatível como destino para assinaturas de tópicos do namespace. Nas próximas versões, os Namespaces da Grade de Eventos darão suporte a todos os destinos atualmente disponíveis no Event Grid Básico, juntamente com destinos adicionais.
Quando usar entrega por push versus entrega por pull
As diretrizes gerais a seguir vão para ajudar você a decidir quando usar a entrega push ou pull.
Entrega pull
- Você precisa obter controle completo sobre quando os eventos serão recebidos. Por exemplo, seu aplicativo talvez não fique online o tempo todo, não seja estável o suficiente ou você processa os dados em determinados horários.
- Você precisa obter controle completo sobre o consumo de eventos. Por exemplo, um serviço downstream ou uma camada no seu aplicativo consumidor tem um problema que impede que você processe os eventos. Nesse caso, a API de entrega pull permite que o aplicativo consumidor libere um evento já lido novamente para o agente, de modo que ele possa ser entregue posteriormente.
- Você deseja usar links privados ao receber eventos, o que é possível apenas com a entrega de pull, não com a entrega de push.
- Você não consegue expor um endpoint e usar a entrega por push, mas pode se conectar ao Event Grid para consumir eventos.
Entrega por push
- Você deseja evitar a sondagem constante para determinar se ocorreu uma alteração de estado do sistema. Você prefere usar a Grade de Eventos para enviar eventos para você no momento em que as alterações de estado ocorrem.
- Você tem um aplicativo que não pode fazer chamadas de saída. Por exemplo, sua organização talvez esteja preocupada com a exfiltração dos dados. No entanto, seu aplicativo pode receber eventos por meio de um endpoint público.
Conteúdo relacionado
- Para ver uma introdução à Grade de Eventos, confira About Event Grid (Sobre a Grade de Eventos).
- Para começar a usar tópicos de namespace, consulte Publicar eventos usando tópicos de namespace.