Megosztás a következőn keresztül:


IoT Hub-eszközstreamek (előzetes verzió)

Az Azure IoT Hub-eszközstreamek megkönnyítik a biztonságos kétirányú TCP-alagutak létrehozását a különböző felhőalapú eszközök közötti kommunikációs forgatókönyvekhez. Az IoT Hub streamelési végpontja közvetíti az eszközstreameket, és proxyként működik az eszköz és a szolgáltatásvégpontok között. Ez az alábbi ábrán látható beállítás különösen akkor hasznos, ha az eszközök hálózati tűzfal mögött vannak, vagy egy magánhálózaton belül találhatók. Ezért az IoT Hub-eszközstreamek segítenek az ügyfeleknek tűzfalbarát módon elérniük az IoT-eszközöket, és nem kell széles körben megnyitniuk a bejövő vagy kimenő hálózati tűzfalportokat.

Az IoT Hub eszközstreamjeinek áttekintését bemutató diagram.

Az IoT Hub-eszközstreameket használó eszközök biztonságosak maradhatnak, és csak a kimenő TCP-kapcsolatokat kell megnyitniuk az IoT Hub streamvégpontja felé a 443-as porton keresztül. A stream létrehozása után a szolgáltatásoldali és az eszközoldali alkalmazások programozott hozzáféréssel rendelkeznek egy WebSocket ügyfélobjektumhoz, hogy nyers bájtokat küldjenek és fogadjanak egymásnak. Az alagút által biztosított megbízhatósági és rendezési garanciák a TCP-vel egyenértékben jelenik meg.

Juttatások

Az IoT Hub eszközstreamjei a következő előnyöket biztosítják:

  • Tűzfalbarát biztonságos kapcsolat: Az IoT-eszközök úgy érhetőek el a szolgáltatásvégpontokról, hogy nem nyitják meg a bejövő tűzfalportot az eszközön vagy a hálózati szegélyeken (csak az IoT Hub felé irányuló kimenő kapcsolat szükséges a 443-as porton keresztül).

  • Hitelesítés: Az alagút eszköz- és szolgáltatásoldalainak egyaránt hitelesíteniük kell az IoT Hubot a megfelelő hitelesítő adataikkal.

  • Titkosítás: Alapértelmezés szerint az IoT Hub-eszközstreamek TLS-kompatibilis kapcsolatokat használnak. Ez a tényező biztosítja, hogy a forgalom mindig titkosítva legyen, függetlenül attól, hogy az alkalmazás titkosítást használ-e.

  • A kapcsolat egyszerűsége: Az eszközstreamek használata sok esetben szükségtelenné teszi a virtuális magánhálózatok összetett beállítását az IoT-eszközökhöz való kapcsolódás engedélyezéséhez.

  • Kompatibilitás a TCP/IP-veremtel: Az IoT Hub eszközstreamjei képesek a TCP/IP-alkalmazások forgalmának kezelésére. Ez a megközelítés azt jelenti, hogy a védett és szabványalapú protokollok széles köre használhatja ezt a funkciót.

  • Egyszerű használat a magánhálózati beállításokban: A szolgáltatás az eszköz azonosítójára hivatkozva tud kommunikálni az eszközzel az eszköz IP-címe helyett. Ez a tény akkor hasznos, ha egy eszköz egy magánhálózaton belül található, és magánhálózati IP-címmel rendelkezik, vagy ip-címe dinamikusan van hozzárendelve, és ismeretlen a szolgáltatásoldal számára.

Eszközstreamelési munkafolyamatok

Az eszközstream akkor indul el, amikor a szolgáltatás az eszközazonosító megadásával kéri az eszközhöz való csatlakozást. Ez a munkafolyamat különösen illeszkedik egy ügyfél-kiszolgáló kommunikációs modellbe, beleértve az SSH-t és az RDP-t is, ahol a felhasználó távolról szeretne csatlakozni az eszközön futó SSH- vagy RDP-kiszolgálóhoz egy SSH- vagy RDP-ügyfélprogram használatával.

Az eszközstreamek létrehozásának folyamata magában foglalja az eszköz, a szolgáltatás, az IoT Hub fő és streamvégpontjai közötti egyeztetést. Bár az IoT Hub fő végpontja egy eszközstream létrehozását vezényli, a streamvégpont kezeli a szolgáltatás és az eszköz közötti forgalmat.

Eszközstreamek létrehozási folyamata

Az eszközstreamek SDK-val történő programozott létrehozása a következő lépéseket foglalja magában, amelyeket az ábra is ábrázol:

Az IoT Hub-eszközstream kézfogási folyamatának lépéseit bemutató ábra.

  1. Az eszközalkalmazás előre regisztrál egy visszahívást, hogy értesítést kapjon arról, amikor egy új eszközstreamet kezdeményeznek az eszközön. Ez a lépés általában akkor történik, amikor az eszköz elindul, és csatlakozik az IoT Hubhoz.

  2. A szolgáltatásoldali program szükség esetén eszközstreamet kezdeményez az eszközazonosító (nem az IP-cím) megadásával.

  3. Az IoT Hub az 1. lépésben regisztrált visszahívás meghívásával értesíti az eszközoldali programot. Az eszköz elfogadhatja vagy elutasíthatja a stream kezdeményezési kérését. Ez a logika az alkalmazásforgatókönyvre jellemző lehet. Ha az eszköz elutasítja a streamkérelmet, az IoT Hub ennek megfelelően tájékoztatja a szolgáltatást; ellenkező esetben a következő lépések történnek.

  4. Az eszköz biztonságos kimenő TCP-kapcsolatot hoz létre a streamvégponthoz a 443-as porton keresztül, és frissíti a kapcsolatot egy WebSocketre. A streamvégpont URL-címét és a hitelesítéshez használt hitelesítő adatokat az IoT Hub a 3. lépésben küldött kérés részeként adja meg az eszköznek.

  5. A szolgáltatás értesítést kap a streamet elfogadó eszköz eredményéről, és saját WebSocket-ügyfelet hoz létre a streamvégponton. Hasonlóképpen megkapja a streamvégpont URL-címét és hitelesítési adatait az IoT Hubtól.

A korábban ismertetett kézfogási folyamat során:

  • A kézfogási folyamatnak 60 másodpercen belül (2–5. lépés) kell befejeződnie, ellenkező esetben a kézfogás időtúllépéssel meghiúsul, és a szolgáltatás erről értesítést kap.

  • A korábban ismertetett stream-létrehozási folyamat befejeződése után a streamvégpont proxyként működik, és a szolgáltatás és az eszköz közötti forgalmat a megfelelő WebSocketeken keresztül továbbítja.

  • Az eszköznek és a szolgáltatásnak egyaránt kimenő kapcsolatot kell létesítenie az IoT Hub fő végpontjával és a streamvégponttal a 443-as porton keresztül. Ezeknek a végpontoknak az URL-címe az IoT Hub portáljának Áttekintés lapján érhető el.

  • A létrehozott stream megbízhatósági és rendezési garanciája a TCP-vel egyenértékben van.

  • Az IoT Hubhoz és a streamvégponthoz való minden kapcsolat TLS-t használ, és titkosítva van.

Leállítási folyamat

A létrehozott stream akkor fejeződik be, ha az átjáróhoz tartozó TCP-kapcsolatok valamelyike megszakad (a szolgáltatás vagy az eszköz). Ez a művelet önkéntesen elvégezhető, ha bezárja a WebSocketet az eszközön vagy a szolgáltatásprogramokon, vagy akaratlanul, ha a hálózati kapcsolat időtúllépése vagy folyamathiba történik. Az eszköz vagy szolgáltatás streamvégponthoz való kapcsolatának megszűnésekor a másik TCP-kapcsolat is (kényszerítve) megszakad, és szükség esetén a szolgáltatás és az eszköz felelős a stream újbóli létrehozásáért.

Csatlakozási követelmények

Az eszköz- és szolgáltatásoldalaknak egyaránt képesnek kell lenniük TLS-kompatibilis kapcsolatok létrehozására az IoT Hubhoz és annak streamvégpontjaihoz. Ez a helyzet kimenő kapcsolatot igényel a 443-as porton keresztül ezekhez a végpontokhoz. A streamvégponthoz társított állomásnév az Azure Portal IoT Hubjának áttekintési paneljén található, ahogyan az alábbi képernyőképen látható.

Képernyőkép egy IoT Hub munkaablakáról az Azure Portalon, kiemelve az eszközstreamelési végpontok állomásnevét.

Másik lehetőségként a végpontok adatai lekérhetők az Azure CLI-vel a központ tulajdonságok szakaszában, property.hostname pontosabban a property.deviceStreams kulcsokkal.

az iot hub devicestream show --name <YourIoTHubName>

A kimenet az összes végpont JSON-objektuma, amelyhez a központ eszközének és szolgáltatásának csatlakoznia kell egy eszközstream létrehozásához.

{
  "streamingEndpoints": [
    "https://<YourIoTHubName>.<region-stamp>.streams.azure-devices.net"
  ]
}

Feljegyzés

Győződjön meg arról, hogy az Azure CLI 2.73.0-s vagy újabb verzióját telepíti. A legújabb verziót az Azure CLI telepítése oldalról töltheti le.

Kimenő kapcsolat engedélyezése az eszköz streamvégpontjaihoz

Ahogy a cikk elején említettük, az eszköz kimenő kapcsolatot hoz létre az IoT Hub streamvégponttal az eszközstreamek kezdeményezési folyamata során. Az eszközön vagy annak hálózatán lévő tűzfalaknak engedélyeznie kell a kimenő kapcsolatot a streamelési átjáróhoz a 443-as porton keresztül (vegye figyelembe, hogy a kommunikáció egy TLS használatával titkosított WebSocket-kapcsolaton keresztül történik).

A streamvégponthoz társított állomásnév az Azure Portal IoT Hubjának áttekintési paneljén található, ahogyan az alábbi képernyőképen látható.

Képernyőkép egy IoT Hub munkaablakáról az Azure Portalon, kiemelve az eszközstreamelési végpontok állomásnevét.

Ezt az információt az Azure CLI használatával is megtalálhatja, ahogyan az alábbi példában is látható:

az iot hub devicestream show --name <YourIoTHubName>

Feljegyzés

Győződjön meg arról, hogy az Azure CLI 2.73.0-s vagy újabb verzióját telepíti. A legújabb verziót az Azure CLI telepítése oldalról töltheti le.

Hibaelhárítás eszközstreamek erőforrásnaplóival

Beállíthatja az Azure Monitort, hogy összegyűjtse az IoT Hub által kibocsátott eszközstreamek erőforrásnaplóit . Ez a megközelítés hasznos lehet a hibaelhárítási forgatókönyvekben.

Kövesse az alábbi lépéseket egy diagnosztikai beállítás létrehozásához, amellyel az IoT Hub eszközstreamjei erőforrásnaplóit elküldheti az Azure Monitor-naplókba:

  1. Az Azure Portalon lépjen az IoT Hubra. A bal oldali panel Figyelés területén válassza a Diagnosztikai beállítások lehetőséget. Ezután válassza a Diagnosztikai beállítás hozzáadása lehetőséget.

  2. Adjon nevet a diagnosztikai beállításnak, és válassza az Eszközstreamek (előzetes verzió) lehetőséget a naplók listájából. Ezután válassza a Küldés a Log Analytics-munkaterületre lehetőséget. A rendszer egy meglévő Log Analytics-munkaterület kiválasztására vagy egy új létrehozására irányítja.

    Képernyőkép az Azure Portal Diagnosztikai beállítás paneljről, kiemelve az eszközstreamek erőforrásnaplóinak beállításait.

  3. Miután létrehozott egy diagnosztikai beállítást, amellyel az Eszköz Streams erőforrásnaplóit egy Log Analytics munkaterületre küldheti, a naplókat az IoT Hub bal oldali paneljének Figyelés területén található Naplók elemre kattintva érheti el az Azure portálon. Az eszközstreamek erőforrásnaplói megjelennek a AzureDiagnostics táblában, és Category=DeviceStreams-vel rendelkeznek. Egy művelet után több percig is eltarthat, amíg a naplók megjelennek a táblában.

    Az itt látható módon a céleszköz identitása és a művelet eredménye is elérhető a naplókban.

    Képernyőkép egy IoT Hub AzureDiagnostic naplóiról, kiemelve az eszközstreamek erőforrásnapló-bejegyzésének identitását, működését és eredményeit.

Az Azure Monitor IoT Hubbal való használatáról az Azure IoT Hub monitorozása című témakörben olvashat bővebben. Az IoT Hubhoz elérhető összes erőforrásnaplóval, metrikával és táblával kapcsolatos információkért tekintse meg az Azure IoT Hub monitorozási adatreferenciáját.

Regionális elérhetőség

A nyilvános előzetes verzióban az IoT Hub eszközstreamjei az USA középső régiójában, az USA keleti régiójában, az EUAP-ban, Észak-Európában és Délkelet-Ázsiában érhetők el. Győződjön meg arról, hogy a központot ezen régiók valamelyikében hozza létre.

SDK rendelkezésre állása

Az egyes streamek két oldala (az eszköz és a szolgáltatás oldalán) az IoT Hub SDK használatával hozza létre az alagutat. A nyilvános előzetes verzióban az ügyfelek az alábbi SDK-nyelvek közül választhatnak:

  • A C és C# SDK-k támogatják az eszközoldali eszközstreameket.

  • A Node.js és A C# SDK-k támogatják az eszközstreameket a szolgáltatás oldalán.

Következő lépések