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


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.

Megjegyzé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-szintekkel kapcsolatban további információkért lásd Válassza ki a megoldása számára megfelelő IoT Hub-szintet és -méretet.

IoT Hub-nevek

Az IoT hub gazdagépnevét az Azure portálon, az IoT hub Áttekintés paneljén 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 vagy nem biztonságos csatornákon.

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 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émá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étrehozott egy útvonalat, 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 hoz létre útvonalakat, engedélyeznie kell egy tartalék útvonalat az üzenetek a beépített végpontra való átirányításához. A fallback alapértelmezés szerint be van kapcsolva, ha a hubot a portálon vagy a CLI használatával hozza létre.

Az üzenet terhelése nincs base64 kódolva a beépített végponton.

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

Az IoT Hub két tárolási szolgáltatáshoz irányíthatja az üzeneteket: Az Azure Blob Storage és az Azure Data Lake Storage Gen2 (ADLS Gen2) fiókokhoz. Mindkét szolgáltatás blobokat használ a tárolóhoz. Az Azure Data Lake Gen2 használatához a tárfióknak engedélyeznie kell a hierarchikus névtereket. További információ: Tárfiók létrehozása az Azure Data Lake Storage-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 formátum az Avro. A JSON-kódolás használatához állítsa a contentType tulajdonságot application/json értékre, a contentEncoding tulajdonságot pedig UTF-8 értékre az üzenetrendszer tulajdonságai között. Mindkét érték kis- és nagybetű érzéketlen.

Ha nem állítja be a szükséges rendszertulajdonságokat, az IoT Hub alap64 kódolást alkalmaz. A base64 kódolás elkerülése érdekében állítsa mind az contentTypeapplication/json tulajdonságot, mind a contentEncodingtulajdonságot UTF-8 értékre az üzenetrendszer tulajdonságai között. Ha ezek a tulajdonságok nincsenek beállítva, az IoT Hub base64 kódolású formátumban írja az üzeneteket.

A kódolási formátumot csak a Blob Storage-végpont konfigurálásakor állíthatja be. Meglévő végpont kódolási formátuma nem szerkeszthető.

Az IoT Hub kötegeli az üzeneteket, és adatokat ír a tárolóba, amikor a köteg eléri a megfelelő méretet vagy eltelt egy meghatározott idő. 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 az összes felsorolt elemet használnia kell. Az IoT Hub üres blobba ír, ha nincs írható adat.

Annak érdekében, hogy az összes blob vagy fájl olvasása a partícióval kapcsolatos feltételezések nélkül történjen, sorolja fel a blobokat vagy fájlokat, majd iterálja át őket. 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 List Blobs API-val számba veheti a blobok listáját, vagy a List ADLS Gen2 API-val tájékozódhat a fájlok listájáról. Példa:

public void ListBlobsInContainer(string containerName, string iothub)
{
    var storageAccount = CloudStorageAccount(Microsoft.Azure.Storage.Auth.StorageCredentials storageCredentials, bool useHttps);
    var cloudBlobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference(containerName);
    if (cloudBlobContainer.Exists())
    {
        var results = cloudBlobContainer.ListBlobs(prefix: $"{iothub}/");
        foreach (IListBlobItem item in results)
        {
            Console.WriteLine(item.Uri);
        }
    }
}

A Service Bus üzenetsorok és a Service Bus témakörök útválasztási végpontként működhetnek.

Az IoT Hub-végpontként használt Service Bus-sorok és témakörök esetében nem lehet engedélyezett a munkamenet vagy a duplikált észlelés. Ha valamelyik beállítást engedélyezi, a végpont elérhetetlenként jelenik meg az Azure Portalon.

A Base64 kódolás soha nem történik meg a Service Bus-üzenetsorokhoz vagy témakörökhöz való útválasztáskor. Az üzenetek változtatás nélkül kerülnek közvetlenül a végpontra.

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.

A Base64-kódolás soha nem történik meg egyéni Event Hubs-végpontokra való útválasztáskor. Az üzenetek változtatás nélkül vannak írva a végpontra.

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 base64 kódolású bináris fájlként.

A Base64 kódolás akkor lesz alkalmazva, ha a szükséges rendszertulajdonságok nincsenek beállítva. JSON-ként való íráshoz állítsa a contentType tulajdonságot application/json értékre, a contentEncoding tulajdonságot pedig UTF-8 értékre az üzenetrendszer tulajdonságai között. Ha ezek a tulajdonságok nincsenek beállítva, az adatok base64 kódolásúak, amikor a Cosmos DB-be írnak.

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 nem frissíthető.

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 egészségi á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
kifogástalan A végpont a várt módon fogadja az üzeneteket.
nem kifogástalan 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 lassabban fogadja az üzeneteket, vagy éppen egy nem egészséges állapotból épül fel.
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: