Ler mensagens de dispositivo para cloud a partir do ponto final incorporado

Por padrão, as mensagens são roteadas para o ponto de extremidade interno voltado para o serviço (mensagens/eventos) que é compatível com Hubs de Eventos. O Hub IoT expõe o ponto de extremidade interno de mensagens/eventos para que seus serviços de back-end leiam as mensagens do dispositivo para a nuvem recebidas pelo hub. Esse ponto de extremidade é compatível com Hubs de Eventos, o que permite que você use qualquer um dos mecanismos suportados pelo serviço Hubs de Eventos para ler mensagens.

Se você estiver usando o roteamento de mensagens e a rota de fallback estiver habilitada, uma mensagem que não corresponda a uma consulta em nenhuma rota irá para o ponto de extremidade interno. Se você desabilitar essa rota de fallback, uma mensagem que não corresponde a nenhuma consulta será descartada.

Atualmente, esse ponto de extremidade só é exposto usando o protocolo AMQP na porta 5671 e o AMQP sobre WebSockets na porta 443. Um hub IoT expõe as seguintes propriedades para permitir que você controle as mensagens/eventos de ponto de extremidade de mensagens compatíveis com o Hub de Eventos interno.

Property Description
Contagem de partições Defina essa propriedade na criação para definir o número de partições para ingestão de eventos de dispositivo para nuvem.
Tempo de retenção Esta propriedade especifica por quanto tempo, em dias, as mensagens são retidas pelo Hub IoT. O padrão é um dia, mas pode ser aumentado para sete dias.

O Hub IoT permite a retenção de dados no endpoint integrado por um período máximo de sete dias. Você pode definir o tempo de retenção durante a criação do seu hub IoT. O tempo de retenção de dados no Hub IoT depende da camada do hub IoT e do tipo de unidade. Em termos de tamanho, o ponto de extremidade interno pode reter mensagens do tamanho máximo de mensagem até pelo menos 24 horas de cota. Por exemplo, um hub IoT de unidade S1 fornece armazenamento suficiente para reter pelo menos 400.000 mensagens, a 4 KB por mensagem. Se os seus dispositivos estiverem a enviar mensagens mais pequenas, estas poderão ser retidas por mais tempo (até sete dias), dependendo da quantidade de armazenamento consumida. Garantimos a retenção dos dados pelo tempo de retenção especificado como mínimo. Após o tempo de retenção, as mensagens expiram e ficam inacessíveis. Você pode modificar o tempo de retenção, programaticamente usando as APIs REST do provedor de recursos do Hub IoT ou com o portal do Azure.

O Hub IoT também permite gerenciar grupos de consumidores no ponto de extremidade interno. Você pode ter até 20 grupos de consumidores para cada hub IoT.

Conectar-se ao ponto de extremidade integrado

Algumas integrações de produtos e SDKs de Hubs de Eventos estão cientes do Hub IoT e permitem que você use sua cadeia de conexão de serviço de hub IoT para se conectar ao ponto de extremidade interno.

Ao usar SDKs de Hubs de Eventos ou integrações de produtos que desconhecem o Hub IoT, você precisa de um ponto de extremidade compatível com o Hub de Eventos e um nome compatível com o Hub de Eventos. Você pode recuperar esses valores do portal da seguinte maneira:

  1. Entre no portal do Azure e navegue até seu hub IoT.

  2. Selecione Pontos de extremidade internos no menu de recursos, em Configurações do Hub.

  3. O painel de trabalho Pontos de extremidade internos contém três seções:

    • A seção Detalhes do Hub de Eventos contém os seguintes valores: Partições, Nome compatível com o Hub de Eventos, Reter para e Grupos de Consumidores.
    • A seção de ponto de extremidade compatível com o Hub de Eventos contém os seguintes valores: Política de acesso compartilhado e Ponto de extremidade compatível com o Hub de Eventos.
    • A seção Mensagens da nuvem para o dispositivo contém os seguintes valores: TTL padrão, Tempo de retenção de feedback e Contagem máxima de entrega.

    Screen capture showing device-to-cloud settings.

No painel de trabalho, o campo de ponto de extremidade compatível com o Hub de Eventos contém uma cadeia de conexão completa de Hubs de Eventos que se parece com o exemplo a seguir:

Ponto de extremidade=sb://abcd1234namespace.servicebus.windows.net/; SharedAccessKeyName=iothubowner; SharedAccessKey=keykeykeykeykey=; EntityPath=iothub-ehub-abcd-1234-123456

Se o SDK que você está usando exigir outros valores, eles serão:

Nome Valor
Ponto final sb://abcd1234namespace.servicebus.windows.net/
Hostname (Nome do anfitrião) abcd1234namespace.servicebus.windows.net
Espaço de Nomes abcd1234namespace

Em seguida, você pode escolher qualquer política de acesso compartilhado na lista suspensa Política de acesso compartilhado, conforme mostrado na captura de tela anterior. Ele mostra apenas as políticas que têm as permissões ServiceConnect para se conectar ao hub de eventos especificado.

Exemplos de SDK

Os SDKs que você pode usar para se conectar ao ponto de extremidade interno compatível com o Hub de Eventos que o Hub IoT expõe incluem:

Idioma SDK Exemplo
.NET https://www.nuget.org/packages/Azure.Messaging.EventHubs ReadD2cMessages .NET
Java https://mvnrepository.com/artifact/com.azure/azure-messaging-eventhubs
Node.js https://www.npmjs.com/package/@azure/event-hubs leitura-d2c-mensagens Node.js
Python https://pypi.org/project/azure-eventhub/ read-dec-messages Python

As integrações de produtos que você pode usar com o ponto de extremidade compatível com o Hub de Eventos interno que o Hub IoT expõe incluem:

Próximos passos