IoT Hub-végpontok

Az Azure IoT Hub különböző végpontokat tesz elérhetővé a vele interakcióban lévő eszközök és szolgáltatások támogatásához.

Feljegyzés

A cikkben említett egyes funkciók, például a felhő–eszköz irányú üzenetküldés, az ikereszközök és az eszközfelügyelet csak a standard szintű IoT Hubon érhető el. Az alapszintű és standard/ingyenes IoT Hub-szintekről további információt a megoldáshoz megfelelő IoT Hub-szint kiválasztása című témakörben talál.

IoT Hub-nevek

Az IoT Hub gazdagépnevét az Azure Portalon, az IoT Hub Áttekintés munkaablakában találja. Alapértelmezés szerint egy IoT Hub DNS-neve a következő példához hasonlóan néz ki:

{your iot hub name}.azure-devices.net

IoT Hub-végpontok fejlesztéshez és felügyelethez

Az Azure IoT Hub egy több-bérlős szolgáltatás, amely funkcióit különböző szereplők számára teszi elérhetővé. Az alábbi ábrán az IoT Hub által elérhetővé tett végpontok láthatók.

A beépített IoT Hub-végpontok listáját bemutató ábra.

Az alábbi lista a végpontokat ismerteti:

  • Erőforrás-szolgáltató: Egy Azure Resource Manager-felület . Ez a felület lehetővé teszi az Azure-előfizetések tulajdonosai számára az IoT Hubok létrehozását és törlését, valamint az IoT Hub tulajdonságainak frissítését. Az IoT Hub tulajdonságai a központi szintű megosztott hozzáférési szabályzatokat szabályozzák, szemben az eszközszintű hozzáférés-vezérléssel, valamint a felhőalapú és az eszközök közötti üzenetküldés funkcionális beállításaival. Az IoT Hub erőforrás-szolgáltatója lehetővé teszi az eszközidentitások exportálását is.

  • Eszközidentitás-kezelés: HTTPS REST-végpontok készlete az eszközidentitások kezeléséhez (létrehozás, lekérés, frissítés és törlés). Az eszközidentitások az eszközhitelesítéshez és a hozzáférés-vezérléshez használatosak .

  • Ikereszköz-kezelés: szolgáltatással rendelkező HTTPS REST-végpontok készlete az ikereszközök lekérdezéséhez és frissítéséhez (címkék és tulajdonságok frissítése).

  • Feladatok kezelése: a feladatok lekérdezésére és kezelésére szolgáló, szolgáltatással kapcsolatos HTTPS REST-végpontok készlete.

  • Eszközvégpontok: az identitásjegyzékben lévő összes eszköz végpontjainak készlete. A feljegyzett esetek kivételével ezek a végpontok az MQTT 3.1.1-es, HTTPS 1.1-es és AMQP 1.0-s protokolljaival vannak közzétéve. Az AMQP és az MQTT websocketeken keresztül is elérhető a 443-es porton. Ezek az eszközvégpontok a következők:

    • Eszközről felhőbe irányuló üzenetek küldése

    • Felhőből eszközre irányuló üzenetek fogadása

    • Fájlfeltöltések kezdeményezése

    • Ikereszköz tulajdonságainak lekérése és frissítése (a HTTPS nem támogatott)

    • Közvetlen metóduskérések fogadása (a HTTPS nem támogatott)

  • Szolgáltatásvégpontok: végpontok készlete a megoldás háttérrendszeréhez az eszközökkel való kommunikációhoz. Egy kivétellel ezek a végpontok csak az AMQP és az AMQP használatával vannak közzétéve a WebSockets protokollokon keresztül. A közvetlen metódushívási végpont a HTTPS protokollon keresztül érhető el.

    • Eszközről felhőbe irányuló üzenetek fogadása: Ez a végpont az üzenet-útválasztási fogalmakban tárgyalt beépített végpont. A háttérszolgáltatás az eszközről a felhőbe irányuló üzenetek olvasására használhatja az eszközök által küldött üzeneteket. A beépített végpont mellett egyéni végpontokat is létrehozhat az IoT Hubon.

    • Felhőből eszközre irányuló üzenetek küldése és kézbesítési visszaigazolások fogadása

    • Fájlfeltöltési értesítések fogadása

    • Közvetlen metódus meghívása

Az Azure IoT Hub SDK-król szóló cikk ismerteti a végpontok elérésének különböző módjait.

Minden IoT Hub-végpont a TLS protokollt használja, és soha nem érhető el végpont titkosítatlan/nem biztonságos csatornákon.

Fontos

Az X.509 hitelesítésszolgáltatói (CA) hitelesítést használó eszközökhöz az alábbi funkciók még nem érhetők el általánosan, és engedélyezni kell az előzetes verziós módot:

  • HTTPS, MQTT over WebSockets, és AMQP over WebSockets protokollok.
  • Fájlfeltöltések (minden protokoll).

Ezek a funkciók általánosan elérhetők az X.509 ujjlenyomat-hitelesítést használó eszközökön. Az IoT Hub x.509-hitelesítésével kapcsolatos további információkért lásd a támogatott X.509-tanúsítványokat.

Egyéni végpontok üzenet-útválasztáshoz

Az Azure-előfizetésekben lévő meglévő Azure-szolgáltatásokat összekapcsolhatja az IoT Hubbal, hogy végpontként működjön az üzenet-útválasztáshoz. Ezek a végpontok szolgáltatásvégpontokként működnek, és fogadóként szolgálnak az üzenetútvonalakhoz. Az eszközök nem írhatnak közvetlenül ezekre a végpontokra. Az üzenet-útválasztással kapcsolatos további információkért lásd : Az IoT Hub üzenet-útválasztás használata az eszközről a felhőbe irányuló üzenetek különböző végpontokra való küldéséhez.

Az IoT Hub jelenleg az alábbi Azure-szolgáltatásokat támogatja egyéni végpontként:

  • Tárolók
  • Event Hubs
  • Service Bus-üzenetsorok
  • Service Bus-témakörök
  • Cosmos DB

A végpontok hubonkénti korlátairól a Kvóták és a szabályozás című témakörben olvashat.

Beépített végpont

A standard Event Hubs-integrációval és SDK-kkal eszközről felhőbe irányuló üzeneteket fogadhat a beépített végpontról (üzenetek/események). Miután létrejött egy útvonal, az adatok nem haladnak tovább a beépített végpontra, hacsak nem jön létre útvonal az adott végpontra. Még ha nem is jönnek létre útvonalak, a tartalék útvonalat engedélyezni kell az üzenetek a beépített végpontra való átirányításához. A tartalék szolgáltatás alapértelmezés szerint engedélyezve van, ha a központot a portál vagy a parancssori felület használatával hozza létre.

Azure Storage-tároló útválasztási végpontként

Az IoT Hub két tárolási szolgáltatással irányíthatja az üzeneteket: Az Azure Blob Storage és az Azure Data Lake Storage Gen2 (ADLS Gen2) fiókokhoz. Mindkettő blobokat használ a tárolóhoz.

Az IoT Hub támogatja az Adatok Azure Storage-ba történő írását Apache Avro és JSON formátumban. Az alapértelmezett az AVRO. A JSON-kódolás használatához állítsa a contentType tulajdonságot application/json és contentEncoding tulajdonságra UTF-8 értékre az üzenetrendszer tulajdonságai között. Mindkét érték megkülönbözteti a kis- és nagybetűket. Ha a tartalomkódolás nincs beállítva, akkor az IoT Hub a 64-es alapformátumban írja az üzeneteket.

A kódolási formátum csak akkor állítható be, ha a blobtároló végpontja konfigurálva van; meglévő végponthoz nem szerkeszthető.

Az IoT Hub minden alkalommal kötegeli az üzeneteket, és adatokat ír a tárolóba, amikor a köteg eléri a kívánt méretet, vagy egy bizonyos idő eltelt. Az IoT Hub alapértelmezés szerint a következő fájlelnevezési konvenciót követi: {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}.

Bármilyen fájlelnevezési konvenciót használhat, de minden felsorolt jogkivonatot használnia kell. Az IoT Hub üres blobba ír, ha nincs írható adat.

Javasoljuk, hogy sorolja fel a blobokat vagy fájlokat, majd iterálja át őket, hogy az összes blob vagy fájl a partíció feltételezése nélkül legyen olvasható. A partíciótartomány a Microsoft által kezdeményezett feladatátvétel vagy az IoT Hub manuális feladatátvétele során változhat. A Blobok listázása API-val számba vehet egy bloblistát, vagy listázhatja az ADLS Gen2 API-t a fájlok listájához. Példa:

public void ListBlobsInContainer(string containerName, string iothub)
{
    var storageAccount = CloudStorageAccount.Parse(this.blobConnectionString);
    var cloudBlobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference(containerName);
    if (cloudBlobContainer.Exists())
    {
        var results = cloudBlobContainer.ListBlobs(prefix: $"{iothub}/");
        foreach (IListBlobItem item in results)
        {
            Console.WriteLine(item.Uri);
        }
    }
}

Azure Data Lake Gen2-kompatibilis tárfiók létrehozásához hozzon létre egy új V2-tárfiókot, és válassza a Hierarchikus névtér engedélyezése lehetőséget a Speciális lap Data Lake Storage Gen2 szakaszában, ahogyan az alábbi képen látható:

Képernyőkép az Azure Date Lake Gen2 Storage kiválasztásáról.

Service Bus-üzenetsorok és Service Bus-témakörök útválasztási végpontként

A Service Bus-üzenetsorok és az IoT Hub-végpontként használt témakörök nem lehetnek engedélyezve munkamenetekkel vagy duplikált észleléssel . Ha valamelyik beállítás engedélyezve van, a végpont elérhetetlenként jelenik meg az Azure Portalon.

Event Hubs útválasztási végpontként

A beépített Event Hubs-kompatibilis végponton kívül az adatokat event hubs típusú egyéni végpontokra is átirányíthatja.

Azure Cosmos DB útválasztási végpontként

Az adatokat közvetlenül az Azure Cosmos DB-be küldheti az IoT Hubról. Az IoT Hub támogatja a Cosmos DB-be való írást JSON-ban (ha az üzenet tartalomtípusában meg van adva) vagy alapszintű 64 kódolású bináris fájlként.

A nagy léptékű forgatókönyvek támogatásához engedélyezheti a szintetikus partíciókulcsokat a Cosmos DB-végponthoz. Mivel a Cosmos DB egy rugalmas skálázású adattár, minden hozzá írt adatnak/dokumentumnak tartalmaznia kell egy logikai partíciót képviselő mezőt. Minden logikai partíció maximális mérete 20 GB. A partíciókulcs tulajdonságnevét a Partíciókulcs neve mezőben adhatja meg. A partíciókulcs tulajdonságának neve a tároló szintjén van definiálva, és a beállítás után nem módosítható.

A szintetikus partíciókulcs értékét úgy konfigurálhatja, hogy megad egy sablont a partíciókulcs-sablonban a becsült adatmennyiség alapján. Gyártási forgatókönyvekben például a logikai partíció várhatóan egy hónapon belül eléri a 20 GB-os maximális korlátot. Ebben az esetben a szintetikus partíciókulcsot az eszközazonosító és a hónap kombinációjaként definiálhatja. A rendszer automatikusan hozzáadja a létrehozott partíciókulcs-értéket minden új Cosmos DB-rekord partíciókulcs-tulajdonságához, biztosítva, hogy minden eszközön minden hónapban létrejönnek logikai partíciók.

Figyelemfelhívás

Ha a rendszer által hozzárendelt felügyelt identitást használja a Cosmos DB-hez való hitelesítéshez, az Azure CLI-vel vagy az Azure PowerShell-lel kell hozzárendelnie a Cosmos DB beépített adatszolgáltató beépített szerepkördefinícióját az identitáshoz. A Cosmos DB szerepkör-hozzárendelése jelenleg nem támogatott az Azure Portalon. A különböző szerepkörökről további információt az Azure Cosmos DB szerepköralapú hozzáférésének konfigurálása című témakörben talál. A szerepkörök cli-vel történő hozzárendelésének megismeréséhez tekintse meg az Azure Cosmos DB SQL-szerepkör-erőforrások kezelését.

Végpont állapota

A REST API Végpontállapot lekérése szolgáltatásával lekérheti a végpontok állapotának állapotát. Javasoljuk, hogy az útválasztási üzenet késésével kapcsolatos IoT Hub-útválasztási metrikákat használva azonosítsa és hibakeresésre használja azokat a hibákat, amelyek akkor merülnek fel, ha a végpont állapota halott vagy nem megfelelő, mivel a késés várhatóan magasabb lesz, ha a végpont ezen állapotok valamelyikében van. Az IoT Hub-metrikák használatáról további információt az IoT Hub monitorozása című témakörben talál.

Állapotadatok Leírás
Egészséges A végpont a várt módon fogadja az üzeneteket.
Egészségtelen A végpont nem fogad üzeneteket, és az IoT Hub újra megpróbál üzeneteket küldeni erre a végpontra.
ismeretlen Az IoT Hub nem kísérelt meg üzeneteket kézbesíteni erre a végpontra.
Leromlott A végpont a vártnál lassabb üzeneteket fogad, vagy nem kifogástalan állapotból helyreáll.
Halott Az IoT Hub már nem küld üzeneteket erre a végpontra. Nem sikerült újrapróbálkozás az üzenetek e végpontra való küldésére.

Következő lépések

További információ az alábbi témakörökről: