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.
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 még nem érhető el általánosan a következő funkció, és engedélyezni kell az előnézeti 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.
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é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). Az útvonalak létrehozása után az adatok nem haladnak tovább a beépített végpontra, kivéve, ha a beépített végpontra hoz létre útvonalat. 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 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 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 ideig. 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 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(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);
}
}
}
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 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 á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: