Koncové body IoT Hubu
Azure IoT Hub zveřejňuje různé koncové body pro podporu zařízení a služeb, které s ním komunikují.
Poznámka:
Některé funkce uvedené v tomto článku, jako je zasílání zpráv z cloudu do zařízení, dvojčata zařízení a správa zařízení, jsou k dispozici ve službě IoT Hub pouze na úrovni Standard. Další informace o úrovních Služby IoT Hub úrovně Basic a Standard/Free najdete v tématu Volba správné úrovně IoT Hubu pro vaše řešení.
Názvy ioT Hubu
Název hostitele centra IoT najdete na webu Azure Portal v pracovním podokně Přehled centra IoT. Ve výchozím nastavení název DNS centra IoT vypadá jako v následujícím příkladu:
{your iot hub name}.azure-devices.net
Koncové body ioT Hubu pro vývoj a správu
Azure IoT Hub je víceklientová služba, která zpřístupňuje své funkce různým subjektům. Následující diagram znázorňuje různé koncové body, které IoT Hub zveřejňuje.
Následující seznam popisuje koncové body:
Poskytovatel prostředků: rozhraní Azure Resource Manageru. Toto rozhraní umožňuje vlastníkům předplatného Azure vytvářet a odstraňovat centra IoT a aktualizovat vlastnosti centra IoT. Vlastnosti služby IoT Hub řídí zásady sdíleného přístupu na úrovni centra, nikoli řízení přístupu na úrovni zařízení a funkční možnosti pro zasílání zpráv typu cloud-zařízení a zařízení-cloud. Poskytovatel prostředků IoT Hubu také umožňuje exportovat identity zařízení.
Správa identit zařízení: sada koncových bodů REST HTTPS pro správu identit zařízení (vytvoření, načtení, aktualizace a odstranění) Identity zařízení se používají k ověřování zařízení a řízení přístupu.
Správa dvojčat zařízení: sada koncových bodů REST HTTPS směřujících ke službě pro dotazování a aktualizaci dvojčat zařízení (aktualizace značek a vlastností).
Správa úloh: sada koncových bodů REST HTTPS směřujících ke službě pro dotazování a správu úloh.
Koncové body zařízení: sada koncových bodů pro každé zařízení v registru identit. Kromě případů, kdy je uvedeno, jsou tyto koncové body zpřístupněny pomocí protokolů MQTT v3.1.1, HTTPS 1.1 a AMQP 1.0 . Protokoly AMQP a MQTT jsou k dispozici také přes webSockety na portu 443. Mezi tyto koncové body zařízení patří:
Odesílání zpráv ze zařízení do cloudu
Příjem zpráv z cloudu do zařízení
Inicializovat nahrávání souborů
Načtení a aktualizace vlastností dvojčete zařízení (HTTPS se nepodporuje)
Příjem požadavků přímých metod (https se nepodporuje)
Koncové body služby: sada koncových bodů pro back-end vašeho řešení pro komunikaci se zařízeními. S jednou výjimkou se tyto koncové body zveřejňují pouze pomocí protokolů AMQP a AMQP přes protokoly WebSockets. Koncový bod volání přímé metody je přístupný přes protokol HTTPS.
Příjem zpráv typu zařízení-cloud: Tento koncový bod je integrovaný koncový bod probíraný v konceptech směrování zpráv. Back-endová služba ji může použít ke čtení zpráv zařízení-cloud odesílaných vašimi zařízeními. Kromě tohoto integrovaného koncového bodu můžete ve službě IoT Hub vytvářet vlastní koncové body.
Odesílání zpráv z cloudu na zařízení a příjem potvrzení o doručení
Příjem oznámení o nahrání souboru
Vyvolání přímé metody
Článek o sadách SDK služby Azure IoT Hub popisuje různé způsoby přístupu k těmto koncovým bodům.
Všechny koncové body ioT Hubu používají protokol TLS a žádný koncový bod se nikdy nezoznačí v nešifrovaných nebo nezabezpečených kanálech.
Důležité
Následující funkce pro zařízení, která používají ověřování certifikační autority X.509, ještě není všeobecně dostupná a musí být povolený režim Preview:
- HTTPS, MQTT přes WebSockets a AMQP přes protokoly WebSockets.
- Nahrávání souborů (všechny protokoly)
Tyto funkce jsou obecně dostupné na zařízeních, která používají ověřování kryptografického otisku X.509. Další informace o ověřování X.509 ve službě IoT Hub najdete v tématu Podporované certifikáty X.509.
Vlastní koncové body pro směrování zpráv
Existující služby Azure ve svých předplatných Azure můžete propojit s centrem IoT, aby fungovaly jako koncové body pro směrování zpráv. Tyto koncové body fungují jako koncové body služby a používají se jako jímky pro trasy zpráv. Zařízení nemůžou zapisovat přímo do těchto koncových bodů. Další informace o směrování zpráv najdete v tématu Použití směrování zpráv služby IoT Hub k odesílání zpráv typu zařízení-cloud do různých koncových bodů.
IoT Hub podporuje jako vlastní koncové body následující služby Azure:
- Kontejnery úložiště
- Event Hubs
- Fronty služby Service Bus
- Témata služby Service Bus
- Cosmos DB
Omezení koncových bodů na centrum najdete v tématu Kvóty a omezování.
Integrovaný koncový bod
Standardní integraci a sady SDK služby Event Hubs můžete použít k příjmu zpráv typu zařízení-cloud z integrovaného koncového bodu (zpráv/událostí). Po vytvoření jakékoli trasy se data zastaví do integrovaného koncového bodu, pokud se trasa nevytvořila do integrovaného koncového bodu. I když se nevytvořou žádné trasy, musí být povolená náhradní trasa pro směrování zpráv do integrovaného koncového bodu. Náhradní řešení je ve výchozím nastavení povolené, pokud vytváříte centrum pomocí portálu nebo rozhraní příkazového řádku.
Azure Storage jako koncový bod směrování
IoT Hub může směrovat zprávy do dvou služeb úložiště: Azure Blob Storage a účty Azure Data Lake Storage Gen2 (ADLS Gen2). Obě tyto objekty blob používají pro své úložiště. Pokud chcete použít Azure Data Lake Gen2, musí mít váš účet úložiště povolené hierarchické obory názvů. Další informace najdete v tématu Vytvoření účtu úložiště pro použití se službou Azure Data Lake Storage.
IoT Hub podporuje zápis dat do služby Azure Storage ve formátu Apache Avro a ve formátu JSON. Výchozí hodnota je AVRO. Chcete-li použít kódování JSON, nastavte vlastnost contentType na vlastnost application/json a contentEncoding na UTF-8 ve vlastnostech systému zpráv. Obě tyto hodnoty nerozlišují malá a velká písmena. Pokud kódování obsahu není nastavené, IoT Hub zapíše zprávy ve formátu kódování base 64.
Formát kódování lze nastavit pouze v případech, kdy je nakonfigurovaný koncový bod úložiště objektů blob. u existujícího koncového bodu ho nejde upravit.
IoT Hub dávková zprávy a zapisuje data do úložiště vždy, když dávka dosáhne určité velikosti nebo určitého časového limitu. Služba IoT Hub ve výchozím nastavení nastaví následující zásady vytváření názvů souborů: {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}
. Můžete použít jakoukoli konvenci vytváření názvů souborů, ale musíte použít všechny uvedené tokeny. IoT Hub zapisuje do prázdného objektu blob, pokud neexistují žádná data k zápisu.
Doporučujeme vypisovat objekty blob nebo soubory a pak je iterovat, aby se zajistilo, že se všechny objekty blob nebo soubory čtou, aniž byste museli provádět předpoklady oddílu. Rozsah oddílů se může potenciálně změnit během převzetí služeb při selhání iniciovaného Microsoftem nebo ručním převzetím služeb při selhání ve službě IoT Hub. K zobrazení výčtu seznamu objektů blob můžete použít rozhraní API pro výpis objektů blob nebo seznam rozhraní API ADLS Gen2 pro seznam souborů. Příklad:
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);
}
}
}
Fronty služby Service Bus a témata služby Service Bus jako koncový bod směrování
Fronty a témata služby Service Bus používané jako koncové body služby IoT Hub nesmí mít povolené relace ani zjišťování duplicit. Pokud je některý z těchto možností povolený, koncový bod se na webu Azure Portal zobrazí jako nedostupný .
Event Hubs jako koncový bod směrování
Kromě integrovaného koncového bodu kompatibilního se službou Event Hubs můžete také směrovat data do vlastních koncových bodů typu Event Hubs.
Azure Cosmos DB jako koncový bod směrování
Data můžete odesílat přímo do služby Azure Cosmos DB ze služby IoT Hub. IoT Hub podporuje zápis do služby Cosmos DB ve formátu JSON (pokud je zadaný v typu obsahu zprávy) nebo jako binární soubor s kódováním base 64.
Pokud chcete podporovat scénáře ve velkém měřítku, můžete pro koncový bod Cosmos DB povolit syntetické klíče oddílů. Vzhledem k tomu, že cosmos DB je úložiště dat hyperškálování, musí všechna data a dokumenty zapsané do úložiště obsahovat pole, které představuje logický oddíl. Každý logický oddíl má maximální velikost 20 GB. Název vlastnosti klíče oddílu můžete zadat v názvu klíče oddílu. Název vlastnosti klíče oddílu je definovaný na úrovni kontejneru a nejde ho aktualizovat.
Hodnotu syntetického klíče oddílu můžete nakonfigurovat zadáním šablony v šabloně klíče oddílu na základě odhadovaného objemu dat. Ve výrobních scénářích se například očekává, že váš logický oddíl dosáhne maximálního limitu 20 GB během měsíce. V takovém případě můžete definovat syntetický klíč oddílu jako kombinaci ID zařízení a měsíce. Vygenerovaná hodnota klíče oddílu se automaticky přidá do vlastnosti klíče oddílu pro každý nový záznam Cosmos DB a zajistí, aby se logické oddíly vytvářely každý měsíc pro každé zařízení.
Upozornění
Pokud k ověřování ve službě Cosmos DB používáte spravovanou identitu přiřazenou systémem, musíte k přiřazení předdefinované definice role Přispěvatel dat integrované v Cosmos DB k identitě použít Azure CLI nebo Azure PowerShell. Přiřazení role pro Cosmos DB se v současné době na webu Azure Portal nepodporuje. Další informace o různýchrolích Informace o přiřazování rolí prostřednictvím rozhraní příkazového řádku najdete v tématu Správa prostředků rolí SQL služby Azure Cosmos DB.
Stav koncového bodu
Stav koncových bodů můžete získat pomocí rozhraní REST API Get Endpoint Health . Doporučujeme použít metriky směrování služby IoT Hub související s latencí směrování zpráv k identifikaci a ladění chyb v případě, že je stav koncového bodu mrtvý nebo není v pořádku, protože očekáváme, že latence bude vyšší, když je koncový bod v jednom z těchto stavů. Další informace o používání metrik služby IoT Hub najdete v tématu Monitorování služby IoT Hub.
Stav | Popis |
---|---|
zdravý | Koncový bod přijímá zprávy podle očekávání. |
nezdravý | Koncový bod nepřijímá zprávy a IoT Hub se pokouší odesílat zprávy do tohoto koncového bodu znovu. |
neznámé | IoT Hub se nepokoušel do tohoto koncového bodu doručovat zprávy. |
ponížený | Koncový bod přijímá zprávy pomaleji, než se čekalo, nebo se obnovuje ze stavu, který není v pořádku. |
mrtvý | IoT Hub už do tohoto koncového bodu nedoručuje zprávy. Opakované pokusy o odeslání zpráv do tohoto koncového bodu se nezdařily. |
Další kroky
Další informace o těchto tématech: