Azure IoT Hub: uwierzytelnianie urządzeń, telemetria D2C, Device Twins i metody bezpośrednie w jednej usłudze zarządzanej
Azure IoT Hub to zarządzana usługa Microsoftu do dwukierunkowej komunikacji IoT. Producentom urządzeń budującym produkty podłączone do sieci zapewnia tożsamość urządzeń, obsługę wiadomości i zarządzanie bez konieczności prowadzenia własnego brokera MQTT.
Device Provisioning Service (DPS)
DPS obsługuje provisioning bezdotykowy na dużą skalę — urządzenia z certyfikatami X.509 automatycznie rejestrują się do właściwego IoT Hub na podstawie reguł grup rejestracji:
az iot dps enrollment-group create --dps-name fss-dps --enrollment-id fss-production --certificate-path manufacturing-ca.crt --iot-hubs fss-prod.azure-devices.net --allocation-policy hashed
Device Twins
{
"desired": {
"firmware": {"version":"2.1.0","url":"https://...","sha256":"abc..."}
},
"reported": {
"firmware": {"version":"2.0.3","status":"downloading","progress":45}
}
}
Metody bezpośrednie
az iot hub invoke-device-method --hub-name fss-prod --device-id "device-001" --method-name "restart" --method-payload "{"reason":"scheduled"}" --timeout 30
Routing i wzbogacanie wiadomości
Silnik routingu wiadomości w IoT Hub pozwala wysyłać różne typy wiadomości do różnych punktów końcowych na podstawie właściwości wiadomości lub treści jej ciała. Reguły routingu używają składni podobnej do SQL i działają na etapie przyjmowania danych — zanim wiadomości trafią do Event Hubs lub Service Bus. Oznacza to, że usługi przetwarzania niżej w łańcuchu otrzymują wstępnie przefiltrowane strumienie, co zmniejsza obciążenie przetwarzaniem i koszty.
SELECT * FROM messages WHERE messageType = 'alert' AND severity >= 7 -- Telemetria pozostaje w Event Hub; alerty trafiają do kolejki Service Bus -- System dyżurny personelu subskrybuje kolejkę Service Bus
Wzbogacanie wiadomości dodaje statyczne właściwości lub właściwości device twin do każdej wiadomości przed routingiem — na przykład dołączając do każdej wiadomości telemetrycznej identyfikator klienta urządzenia, region geograficzny lub rewizję sprzętu z device twin. Eliminuje to konieczność wyszukiwania metadanych urządzenia przez usługi niżej w łańcuchu przy każdej wiadomości.
Limity IoT Hub i wybór poziomu
Cennik IoT Hub oparty jest na poziomach usług, a błędny wybór poziomu jest kosztowny. Poziom S1 dopuszcza 400 000 wiadomości dziennie na jednostkę — dla floty 1000 urządzeń wysyłających telemetrię co 30 sekund daje to 2 880 000 wiadomości dziennie, co wymaga 8 jednostek S1 lub pojedynczej jednostki S3. Starannie oblicz swój wolumen wiadomości przed provisioningiem: uwzględnij telemetrię, aktualizacje device twin, wywołania metod bezpośrednich oraz operacje OTA.
Poziom bezpłatny (F1) jest ograniczony do 8000 wiadomości dziennie i 500 urządzeń — przydatny do prac deweloperskich, niewystarczający dla jakiejkolwiek floty produkcyjnej. S1 to właściwy poziom dla większości premier produktów; S3 (z 300 milionami wiadomości na jednostkę dziennie) sprawdza się dla flot liczących dziesiątki tysięcy urządzeń.
Integracja z usługami Azure
IoT Hub integruje się natywnie z szerszym ekosystemem Azure: Event Hubs do przetwarzania strumieni, Azure Stream Analytics do zapytań w czasie rzeczywistym, Azure Time Series Insights (oraz jego następca Azure Data Explorer) do przechowywania telemetrii, Azure Functions do bezserwerowego przetwarzania zdarzeń oraz Azure Logic Apps do automatyzacji przepływów pracy. Ta integracja ekosystemowa to jedna z największych przewag IoT Hub nad samodzielnie hostowanymi brokerami MQTT — połączenia między usługami są gotowe i zarządzane.
Dla producentów urządzeń budujących swój pierwszy produkt podłączony do sieci rozpoczęcie od Azure IoT Hub i rozszerzanie o kolejne usługi w miarę potrzeb to ścieżka o najniższym ryzyku. Zarządzana infrastruktura pozwala Twojemu zespołowi inżynieryjnemu skupić się na funkcjach produktu, a nie na obsłudze infrastruktury.
Budujesz produkt IoT?
FSS to pełnostackowy zespół inżynieryjny IoT — sprzęt, firmware, chmura i aplikacje mobilne w jednym miejscu.