Compartilhar via


Criar rotas e filtros de eventos nos Gêmeos Digitais do Azure

Este artigo o orienta no processo de criação de rotas de eventos usando o portal do Azure, comandos az dt route da CLI do Azure, APIs do plano de dados das Rotas de Eventose SDK do .NET (C#).

Encaminhar as notificações de eventos dos Gêmeos Digitais do Azure para serviços downstream ou recursos de computação conectados é um processo de duas etapas: criar pontos de extremidade e, em seguida, criar rotas de evento para enviar dados para esses pontos de extremidade. Este artigo aborda a segunda etapa, a configuração de rotas para controlar quais eventos são entregues a quais pontos de extremidade dos Gêmeos Digitais do Azure. Para continuar com este artigo, você deve ter pontos de extremidade já criados.

Pré-requisitos

  • Você precisará ter uma conta do Azure, que pode ser configurada gratuitamente

  • Você precisará de uma instância dos Gêmeos Digitais do Azure na assinatura do Azure. Se você ainda não tiver uma instância, crie uma seguindo as etapas em Configurar uma instância e uma autenticação. Faça com que os seguintes valores da configuração sejam úteis para uso posterior neste artigo:

    • Nome da instância
    • Grupo de recursos

    Você pode encontrar esses detalhes no portal do Azure depois de configurar a sua instância.

    Captura de tela da página Visão geral de uma instância dos Gêmeos Digitais do Azure no portal do Azure. O nome e o grupo de recursos são realçados.

  • Crie um ponto de extremidade usando as instruções em Criar pontos de extremidade. Neste artigo, você criará uma rota para enviar dados para esse ponto de extremidade.

Então, siga as instruções abaixo se você deseja usar a CLI do Azure com este guia.

Preparar o ambiente para a CLI do Azure

Criar uma rota de evento

Depois de criar um ponto de extremidade, você precisará definir uma rota de evento para realmente enviar dados para o ponto de extremidade. Essas rotas permitem que os desenvolvedores conectem o fluxo de eventos de todo o sistema e aos serviços downstream. Uma só rota pode permitir a escolha de várias notificações e tipos de eventos. Leia mais sobre as rotas de eventos em Pontos de extremidade e rotas de eventos.

Observação

Verifique se você criou pelo menos um ponto de extremidade, conforme descrito nos Pré-requisitos antes de passar para a criação de uma rota.

Se você implantou recentemente seus pontos de extremidade, valide se eles terminaram de implantar antes de tentar usá-los em uma nova rota de evento. Se a implantação da rota falhar porque os pontos de extremidade não estão prontos, aguarde alguns minutos e tente novamente.

Se você estiver fazendo o script deste fluxo, talvez seja necessário levar isso em consideração, criando 2 a 3 minutos de tempo de espera para que o serviço do ponto de extremidade termine a implantação antes de avançar para a configuração da rota.

Uma definição de rota pode conter estes elementos:

  • O nome da rota que você deseja usar
  • O nome do ponto de extremidade que você deseja usar
  • Um filtro que define quais eventos são enviados para o ponto de extremidade
    • Para desabilitar a rota para que nenhum evento seja enviado, use um valor de filtro de false
    • Para habilitar uma rota sem filtragem específica, use um valor de filtro de true
    • Para obter detalhes de outros tipos de filtro, veja a seção Filtrar eventos abaixo

Se não houver nenhum nome de rota, nenhuma mensagem será roteada fora dos Gêmeos Digitais do Azure. Se houver um nome de rota e o filtro for true, todas as mensagens serão roteadas para o ponto de extremidade. Se houver um nome de rota e um filtro distinto for adicionado, as mensagens serão filtradas com base no filtro.

As rotas de eventos podem ser criadas com o portal do Azure, as APIs de plano de dados de EventRoutes ou os comandos az dt route da CLI. O restante desta seção percorre o processo de criação.

Para criar uma rota de evento, acesse a página de detalhes da sua instância dos Gêmeos Digitais do Azure no portal do Azure (você pode encontrar a instância inserindo o nome dela na barra de pesquisa do portal).

No menu da instância, escolha Rotas de eventos. Então, na página Rotas de eventos a seguir, escolha + Criar uma rota de evento.

Na página Criar uma rota de evento que é exibida, escolha no mínimo:

  • Um nome para a sua rota no campo Nome
  • O Ponto de extremidade que você quer usar para criar a rota

Para habilitar a rota, você também deve Adicionar um filtro de rota de evento de pelo menos true. (Deixar o valor padrão de false criará a rota, mas nenhum evento será enviado a ela). Para isso, habilite a opção do Editor avançado e escreva true na caixa Filtro.

Captura de tela da criação de uma rota de evento para sua instância no portal do Azure.

Quando concluir, clique no botão Salvar para criar a rota de evento.

Filtrar eventos

Como descrito acima, as rotas têm um campo de filtro. Se o valor do filtro da rota for false, nenhum evento será enviado ao ponto de extremidade.

Depois de habilitar um filtro mínimo de true, os pontos de extremidade receberão diferentes tipos de eventos dos Gêmeos Digitais do Azure:

  • Telemetria disparada pelos gêmeos digitais usando a API de serviço dos Gêmeos Digitais do Azure
  • Notificações de alteração de propriedade do gêmeo, acionadas em alterações de propriedade para qualquer gêmeo na instância dos Gêmeos Digitais do Azure
  • Eventos de ciclo de vida, acionados quando os gêmeos ou os relacionamentos são criados ou excluídos

Você pode restringir os tipos de eventos que estão sendo enviados definindo um filtro mais específico.

Observação

Os filtros diferenciam maiúsculas de minúsculas e precisam corresponder às maiúsculas e minúsculas do conteúdo. Em relação aos filtros de telemetria, isso significa que o uso de maiúsculas e minúsculas precisa corresponder ao uso de maiúsculas e minúsculas da telemetria enviada pelo dispositivo.

Para adicionar um filtro de evento ao criar uma rota de evento, use a seção Adicionar um filtro de rota de evento da página Criar uma rota de evento.

Você pode escolher algumas opções básicas de filtro comum ou usar as opções de filtro avançado para escrever os seus próprios filtros personalizados.

Usar os filtros básicos

Para usar os filtros básicos, expanda a opção Tipos de eventos e escolha as caixas de seleção que correspondem aos eventos que você quer enviar para o ponto de extremidade.

Captura de tela da criação de uma rota de eventos com um filtro básico no portal do Azure, destacando as caixas de seleção dos eventos.

Ao fazer isso, preencherá automaticamente a caixa de texto de filtro com o texto do filtro que você escolheu:

Captura de tela que mostra a criação de uma rota de evento com um filtro básico no portal do Azure, destacando o texto do filtro preenchido automaticamente depois de escolher os eventos.

Usar os filtros avançados

É possível usar a opção de filtro avançado para escrever os seus próprios filtros personalizados.

Para criar uma rota de evento com opções de filtros avançados, habilite a opção do Editor avançado. Em seguida, você pode escrever os seus próprios filtros de eventos na caixa Filtro:

Captura de tela da criação de uma rota de evento com um filtro avançado no portal do Azure.

Filtros de rota com suporte

Aqui estão os filtros de rota compatíveis.

Nome do filtro Descrição Filtrar esquema de texto Valores com suporte
Verdadeiro/Falso Permite criar uma rota sem filtragem ou desabilitar uma rota para que nenhum evento seja enviado <true/false> true = a rota está habilitada sem filtragem
false = a rota está desabilitada
Tipo O tipo de evento que flui pela sua instância dos Gêmeos Digitais type = '<event-type>' Estes são os prováveis valores do tipo de evento:
Microsoft.DigitalTwins.Twin.Create
Microsoft.DigitalTwins.Twin.Delete
Microsoft.DigitalTwins.Twin.Update
Microsoft.DigitalTwins.Relationship.Create
Microsoft.DigitalTwins.Relationship.Update
Microsoft.DigitalTwins.Relationship.Delete
microsoft.iot.telemetry
Origem Nome da instância dos Gêmeos Digitais do Azure source = '<host-name>' Veja os prováveis valores do nome do host:

Para notificações: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net

Para telemetria: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID>
Assunto Uma descrição do evento no contexto da origem do evento acima subject = '<subject>' Veja os prováveis valores do assunto:

Para notificações: o assunto é <twin-ID>
ou um formato de URI para entidades, que são identificadas exclusivamente por várias partes ou IDs:
<twin-ID>/relationships/<relationship-ID>

Para telemetria: o assunto é o caminho do componente (se a telemetria é emitida de um componente gêmeo), como comp1.comp2. Se a telemetria não é emitida de um componente, o campo assunto fica em branco.
Esquema de dados ID do modelo DTDL dataschema = '<model-dtmi-ID>' Para telemetria: o esquema de dados é a ID do modelo do gêmeo ou do componente que emite a telemetria. Por exemplo, dtmi:example:com:floor4;2

Para notificações (criar/excluir): o esquema de dados pode ser acessado no corpo da notificação, em $body.$metadata.$model.

Para notificações (atualizar): o esquema de dados pode ser acessado no corpo da notificação, em $body.modelId
Tipo de conteúdo Tipo de conteúdo do valor de dados. datacontenttype = '<content-type>' O tipo de conteúdo é application/json.
Versão de especificação A versão do esquema de evento que você está usando specversion = '<version>' A versão deve ser 1.0. Este valor indica o esquema CloudEvents versão 1.0
Corpo da notificação Referência a qualquer propriedade no campo data de uma notificação. $body.<property> Confira Notificações de eventos para ver exemplos de notificações. Qualquer propriedade no campo data pode ser referenciada usando $body

Observação

Atualmente, os Gêmeos Digitais do Azure não dão suporte à filtragem de eventos com base nos campos de uma matriz. Isso inclui filtrar propriedades de uma seção de patch de uma notificação de alteração de gêmeo digital.

Os tipos de dados a seguir têm suporte como valores retornados por referências aos dados acima:

Tipo de dados Exemplo
String STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
CONTAINS(subject, '<twin-ID>')
Inteiro $body.errorCode > 200
Double $body.temperature <= 5.5
Bool $body.poweredOn = true
Null $body.prop != null

Os seguintes operadores têm suporte ao definir os filtros de rota:

Família Operadores Exemplo
Lógico AND, OR, ( ) (type != 'microsoft.iot.telemetry' OR datacontenttype = 'application/json') OR (specversion != '1.0')
Comparação <, <=, >, >=, =, != $body.temperature <= 5.5

As funções a seguir têm suporte ao definir os filtros de rota:

Função descrição Exemplo
STARTS_WITH(x,y) Retornará true se o valor x começar com a cadeia de caracteres y. STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
ENDS_WITH(x,y) Retornará true se o valor x terminar com a cadeia de caracteres y. ENDS_WITH($body.$metadata.$model, 'floor;1')
CONTAINS(x,y) Retornará true se o valor x contiver a cadeia de caracteres y. CONTAINS(subject, '<twin-ID>')

Quando você implementa ou atualiza um filtro, a alteração pode levar alguns minutos para ser refletida no pipeline de dados.

Monitorar rotas de eventos

As métricas de roteamento, como contagem, latência e taxa de falha, podem ser exibidas no portal do Azure.

Para informações sobre como exibir e gerenciar métricas com o Azure Monitor, confira Introdução ao Metrics Explorer. Para uma lista completa das métricas de roteamento disponíveis para os Gêmeos Digitais do Azure, confira Métricas de roteamento dos Gêmeos Digitais do Azure.

Próximas etapas

Leia sobre os diversos tipos de mensagens de evento que você pode receber: