Leggere messaggi da dispositivo a cloud dall'endpoint predefinito

Per impostazione predefinita, i messaggi vengono instradati all'endpoint per servizi predefinito (messages/events) compatibile con l'hub eventi. L'hub IoT espone l'endpoint messaggi/eventi predefinito per permettere ai servizi back-end di leggere i messaggi da dispositivo a cloud ricevuti dall'hub. L'endpoint è compatibile con Hub eventi e consente quindi di usare uno dei meccanismi supportati da tale servizio per la lettura dei messaggi.

Se si usa il routing dei messaggi e la route di fallback è abilitata, un messaggio che non corrisponde a una query in alcuna route passa all'endpoint predefinito. Se si disabilita questa route di fallback, viene eliminato un messaggio che non corrisponde ad alcuna query.

Questo endpoint è attualmente esposto solo usando il protocollo AMQP sulla porta 5671 e AMQP su WebSocket sulla porta 443. Un hub IoT espone le proprietà seguenti per consentire il controllo dell'endpoint di messaggistica predefinito messages/events, compatibile con Hub eventi.

Proprietà Descrizione
Numero di partizioni Impostare questa proprietà in fase di creazione per definire il numero di partizioni per l'inserimento di eventi da dispositivo a cloud.
Tempo di conservazione Questa proprietà specifica per quanti giorni i messaggi vengono conservati dall'hub IoT. Il valore predefinito è un giorno, ma può essere aumentato a sette giorni.

hub IoT consente la conservazione dei dati nell'endpoint predefinito per un massimo di sette giorni. È possibile impostare il tempo di conservazione durante la creazione dell'hub IoT. Il tempo di conservazione dei dati nell'hub IoT dipende dal tipo di unità e dal livello dell'hub IoT. In termini di dimensioni, l'endpoint predefinito può conservare i messaggi delle dimensioni massime dei messaggi fino a almeno 24 ore di quota. Ad esempio, un hub IoT di unità S1 fornisce spazio di archiviazione sufficiente per conservare almeno 400.000 messaggi, a 4 KB per messaggio. Se i dispositivi inviano messaggi più piccoli, possono essere conservati per più tempo (fino a sette giorni) a seconda della quantità di spazio di archiviazione utilizzata. Microsoft garantisce di conservare i dati per il tempo di conservazione specificato come minimo. Dopo il superamento del tempo di conservazione, i messaggi scadono e diventano inaccessibili. È possibile modificare il tempo di conservazione a livello di codice con le API REST del provider di risorse dell'hub IoT oppure con il portale di Azure.

hub IoT consente anche di gestire i gruppi di consumer nell'endpoint predefinito. È possibile avere fino a 20 gruppi di consumer per ogni hub IoT.

Connessione all'endpoint predefinito

Alcune integrazioni del prodotto ed SDK di Hub eventi sono in grado di rilevare la presenza dell'hub IoT e consentono di usare la stringa di connessione del servizio hub IoT per connettersi all'endpoint predefinito.

Quando si usano SDK di Hub eventi o integrazioni del prodotto che non rilevano l'hub IoT, sono necessari un endpoint e un nome compatibili con l'hub eventi. È possibile recuperare questi valori dal portale come illustrato di seguito:

  1. Accedere al portale di Azure e passare all'hub IoT.

  2. Selezionare Endpoint predefiniti dal menu delle risorse, in Impostazioni hub.

  3. Il riquadro di lavoro Degli endpoint predefiniti contiene tre sezioni:

    • La sezione Dettagli hub eventi contiene i valori seguenti: Partizioni, Nome compatibile con Hub eventi, Mantieni per e Gruppi di consumer.
    • La sezione Endpoint compatibile con Hub eventi contiene i valori seguenti: Criteri di accesso condiviso ed endpoint compatibile con Hub eventi.
    • La sezione Messaggistica da cloud a dispositivo contiene i valori seguenti: Durata TTL predefinita, Tempo di conservazione feedback e Numero massimo di recapito.

    Screen capture showing device-to-cloud settings.

Nel riquadro di lavoro il campo endpoint compatibile con Hub eventi contiene un stringa di connessione completo di Hub eventi simile all'esempio seguente:

Endpoint=sb://abcd1234namespace.servicebus.windows.net/; SharedAccessKeyName=iothubowner; SharedAccessKey=keykeykeykeykeykey=; EntityPath=iothub-ehub-abcd-1234-123456

Se per l'SDK in uso sono necessari altri valori, corrisponderanno a quanto segue:

Nome valore
Endpoint sb://abcd1234namespace.servicebus.windows.net/
Hostname (Nome host) abcd1234namespace.servicebus.windows.net
Spazio dei nomi abcd1234namespace

È quindi possibile scegliere qualsiasi criterio di accesso condiviso dall'elenco a discesa Criteri di accesso condiviso, come illustrato nello screenshot precedente. Mostra solo i criteri che dispongono delle autorizzazioni Service Connessione per connettersi all'hub eventi specificato.

Esempi di SDK

Gli SDK che è possibile usare per connettersi all'endpoint compatibile con l'hub eventi predefinito che l'hub IoT espone includono:

Lingua SDK Esempio
.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 read-d2c-messages Node.js
Python https://pypi.org/project/azure-eventhub/ read-dec-messages Python

Le integrazioni del prodotto che è possibile usare per connettersi all'endpoint compatibile con l'hub eventi predefinito che l'hub IoT espone includono:

Passaggi successivi