Compartilhar via


Processamento de dados e funções definidas pelo usuário

Importante

Uma nova versão do serviço dos Gêmeos Digitais do Azure foi lançada. À luz das funcionalidades expandidas do novo serviço, o serviço original dos Gêmeos Digitais do Azure (descrito neste conjunto de documentação) foi desativado.

Para acessar a documentação do novo serviço, consulte a Documentação Ativa do Azure Digital Twins .

Os Gêmeos Digitais do Azure oferecem recursos avançados de computação. Os desenvolvedores podem definir e executar funções personalizadas em mensagens de telemetria de entrada para enviar eventos para pontos de extremidade predefinidos.

Fluxo de processamento de dados

Depois que os dispositivos enviam dados de telemetria para os Gêmeos Digitais do Azure, os desenvolvedores podem processar dados em quatro fases: validar, corresponder, computar e expedir.

Fluxo de processamento de dados dos Gêmeos Digitais do Azure

  1. A fase de validação transforma a mensagem de telemetria de entrada em um formato de objeto de transferência de dados comumente compreendido. Essa fase também executa a validação do dispositivo e do sensor.
  2. A fase de correspondência localiza as funções apropriadas definidas pelo usuário para serem executadas. Os correspondentes predefinidos encontram as funções definidas pelo usuário com base nas informações de dispositivo, sensor e espaço da mensagem de telemetria de entrada.
  3. A fase de computação executa as funções definidas pelo usuário correspondentes na fase anterior. Essas funções podem ler e atualizar valores computados em nós de grafo espacial e podem emitir notificações personalizadas.
  4. A fase de distribuição roteia as notificações personalizadas da fase de computação para os pontos de extremidade definidos no grafo.

Objetos de processamento de dados

O processamento de dados nos Gêmeos Digitais do Azure consiste na definição de três objetos: correspondências, funções definidas pelo usuário e atribuições de função.

Objetos de processamento de dados dos Gêmeos Digitais do Azure

Correspondentes

Avaliadores definem um conjunto de condições que avaliam quais ações ocorrem com base na telemetria recebida do sensor. As condições para determinar a correspondência podem incluir propriedades do sensor, do dispositivo pai do sensor e do espaço pai do sensor. As condições são expressas como comparações em relação a um caminho JSON , conforme descrito neste exemplo:

  • Todos os sensores do tipo de dados Temperatura representados pelo valor de String escapado \"Temperature\"
  • Tendo 01 em sua porta
  • Que pertencem a dispositivos com a chave de propriedade estendida Fabricante definida para o valor de string com escape \"Contoso\"
  • Que pertencem a espaços do tipo especificado pela cadeia de caracteres com escape \"Venue\"
  • Quais são descendentes da SpaceId paiDE8F06CA-1138-4AD7-89F4-F782CC6F69FD?
{
  "id": "23535afafd-f39b-46c0-9b0c-0dd3892a1c30",
  "name": "My custom matcher",
  "spaceId": "DE8F06CA-1138-4AD7-89F4-F782CC6F69FD",
  "description": "All sensors of datatype Temperature with 01 in their port that belong to devices with the extended property key Manufacturer set to the value Contoso and that belong to spaces of type Venue that are somewhere below space Id DE8F06CA-1138-4AD7-89F4-F782CC6F69FD",
  "conditions": [
    {
      "id": "43898sg43-e15a-4e9c-abb8-2gw464364",
      "target": "Sensor",
      "path": "$.dataType",
      "value": "\"Temperature\"",
      "comparison": "Equals"
    },
    {
      "id": "wt3th44-e15a-35sg-seg3-235wf3ga463",
      "target": "Sensor",
      "path": "$.port",
      "value": "01",
      "comparison": "Contains"
    },
    {
      "id": "735hs33-e15a-37jj-23532-db901d550af5",
      "target": "SensorDevice",
      "path": "$.properties[?(@.name == 'Manufacturer')].value",
      "value": "\"Contoso\"",
      "comparison": "Equals"
    },
    {
      "id": "222325-e15a-49fg-5744-463643644",
      "target": "SensorSpace",
      "path": "$.type",
      "value": "\"Venue\"",
      "comparison": "Equals"
    }
  ]
}

Importante

  • Os caminhos JSON são sensíveis a maiúsculas e minúsculas.
  • O conteúdo JSON é o mesmo que o conteúdo retornado por:
    • /sensors/{id}?includes=properties,types para o sensor.
    • /devices/{id}?includes=properties,types,sensors,sensorsproperties,sensorstypes para o dispositivo pai do sensor.
    • /spaces/{id}?includes=properties,types,location,timezone para o espaço pai do sensor.
  • As comparações não diferenciam maiúsculas e minúsculas.

Funções definidas pelo usuário

Uma função definida pelo usuário é uma função personalizada executada em um ambiente isolado dos Gêmeos Digitais do Azure. As funções definidas pelo usuário têm acesso à mensagem de telemetria do sensor bruto à medida que são recebidas. As funções definidas pelo usuário também têm acesso ao grafo espacial e ao serviço de despacho. Depois que a função definida pelo usuário for registrada em um grafo, um correspondente (detalhado acima) deverá ser criado para especificar quando a função é executada. Por exemplo, quando os Gêmeos Digitais do Azure recebem uma nova telemetria de um determinado sensor, a função definida pelo usuário correspondente pode calcular uma média móvel das últimas leituras do sensor.

As funções definidas pelo usuário podem ser escritas em JavaScript. Os métodos auxiliares interagem com o grafo no ambiente de execução definido pelo usuário. Os desenvolvedores podem executar snippets de código personalizados contra mensagens de telemetria do sensor. Os exemplos incluem:

  • Defina a leitura do sensor diretamente no objeto do sensor dentro do grafo.
  • Execute uma ação com base em diferentes leituras de sensor em um espaço no grafo.
  • Crie uma notificação quando determinadas condições forem atendidas para uma leitura de sensor de entrada.
  • Anexe metadados de grafo à leitura do sensor antes de enviar uma notificação.

Para obter mais informações, leia Como usar funções definidas pelo usuário.

Exemplos

O repositório GitHub para o exemplo C# dos Gêmeos Digitais contém alguns exemplos das funções definidas pelo usuário:

  • Essa função procura valores de dióxido de carbono, movimento e temperatura para determinar se uma sala está disponível com esses valores no intervalo. Os tutoriais dos Gêmeos Digitais exploram essa função em mais detalhes.
  • Essa função procura dados de vários sensores de movimento e determina que o espaço está disponível se nenhum deles detectar qualquer movimento. Você pode substituir facilmente a função definida pelo usuário usada no início rápido ou nos tutoriais, fazendo as alterações mencionadas na seção de comentários do arquivo.

Atribuição de função

As ações de uma função definida pelo usuário estão sujeitas ao controle de acesso baseado em função no Azure Digital Twins para proteger os dados dentro do serviço. As atribuições de função definem quais funções definidas pelo usuário têm as permissões adequadas para interagir com o grafo espacial e suas entidades. Por exemplo, uma função definida pelo usuário pode ter a capacidade e a permissão de CRIAR, LER, ATUALIZAR ou EXCLUIR dados de grafo em um determinado espaço. O nível de acesso de uma função definida pelo usuário é verificado quando a função definida pelo usuário solicita dados ao grafo ou tenta uma ação. Para obter mais informações, leia o controle de acesso por função.

É possível que um mecanismo de correspondência dispare uma função definida pelo usuário sem atribuições de funções. Nesse caso, a função definida pelo usuário não consegue ler os dados do grafo.

Próximas etapas