Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure IoT Hub udostępnia różne punkty końcowe do obsługi urządzeń i usług, które z nią współdziałają.
Uwaga
Niektóre funkcje wymienione w tym artykule, takie jak komunikacja z chmury do urządzenia, bliźniaki cyfrowe urządzeń i zarządzanie urządzeniami, są dostępne tylko w warstwie Standard usługi IoT Hub. Aby uzyskać więcej informacji na temat warstw podstawowej i standardowej/bezpłatnej usługi IoT Hub, zobacz Wybieranie odpowiedniej warstwy i rozmiaru usługi IoT Hub dla rozwiązania.
Nazwy usługi IoT Hub
Nazwę hosta IoT hub można znaleźć w portalu Azure, w okienku roboczym Omówienie dla Twojego IoT hub. Domyślnie nazwa DNS centrum IoT Wygląda jak w poniższym przykładzie:
{your iot hub name}.azure-devices.net
Punkty końcowe usługi IoT Hub na potrzeby programowania i zarządzania
Azure IoT Hub to wielodostępna usługa, która uwidacznia jej funkcjonalność dla różnych podmiotów. Na poniższym diagramie przedstawiono różne punkty końcowe udostępniane przez usługę IoT Hub.
Poniższa lista zawiera opis punktów końcowych:
Dostawca zasobów: interfejs usługi Azure Resource Manager . Ten interfejs umożliwia właścicielom subskrypcji platformy Azure tworzenie i usuwanie centrów IoT oraz aktualizowanie właściwości centrum IoT Hub. Właściwości usługi IoT Hub zarządzają zasadami dostępu współdzielonego na poziomie centrum, w przeciwieństwie do kontroli dostępu na poziomie urządzenia oraz opcjami funkcjonalnymi obsługi komunikatów z chmury do urządzeń i urządzeń do chmury. Dostawca zasobów usługi IoT Hub umożliwia również eksportowanie tożsamości urządzeń.
Zarządzanie tożsamościami urządzeń: zestaw punktów końcowych REST PROTOKOŁU HTTPS do zarządzania tożsamościami urządzeń (tworzenie, pobieranie, aktualizowanie i usuwanie). Tożsamości urządzeń są używane do uwierzytelniania urządzeń i kontroli dostępu.
Zarządzanie bliźniaczymi urządzeniami: zestaw punktów końcowych REST HTTPS skierowanych na usługi do wysyłania zapytań i aktualizowania bliźniaczych urządzeń (aktualizować tagi i właściwości).
Zarządzanie zadaniami: zestaw punktów końcowych REST HTTPS przeznaczonych do wykonywania zapytań o zadania i zarządzania nimi.
Punkty końcowe urządzeń: zestaw punktów końcowych dla każdego urządzenia w rejestrze tożsamości. O ile nie wskazano inaczej, te punkty końcowe są udostępniane przy użyciu protokołów MQTT w wersji 3.1.1, HTTPS 1.1 i AMQP 1.0. Protokół AMQP i MQTT jest również dostępny za pośrednictwem WebSockets na porcie 443. Te punkty końcowe urządzeń obejmują:
Wysyłanie komunikatów z urządzenia do chmury
Odbieranie komunikatów z chmury do urządzenia
Inicjowanie przekazywania plików
Pobieranie i aktualizowanie bliźniaczych właściwości urządzenia (protokół HTTPS nie jest obsługiwany)
Odbieranie żądań metod bezpośrednich (protokół HTTPS nie jest obsługiwany)
Punkty końcowe usługi: zestaw punktów końcowych zaplecza rozwiązania do komunikowania się z urządzeniami. Z jednym wyjątkiem te punkty końcowe są widoczne tylko przy użyciu protokołów AMQP i AMQP za pośrednictwem protokołów WebSocket. Punkt końcowy wywołania metody bezpośredniej jest uwidaczniony za pośrednictwem protokołu HTTPS.
Odbieranie wiadomości z urządzenia do chmury: ten punkt końcowy jest wbudowanym punktem końcowym omówionym w koncepcjach routingu wiadomości. Usługa zaplecza może jej używać do odczytywania komunikatów urządzenie-do-chmury wysyłanych przez urządzenia. Oprócz tego wbudowanego punktu końcowego można tworzyć niestandardowe punkty końcowe w centrum IoT Hub.
Wysyłanie komunikatów z chmury do urządzenia i odbieranie potwierdzenia dostarczenia
Otrzymuj powiadomienia o przesyłaniu plików
Wywoływanie metody bezpośredniej
W artykule Zestawy SDK usługi Azure IoT Hub opisano różne sposoby uzyskiwania dostępu do tych punktów końcowych.
Wszystkie punkty końcowe usługi IoT Hub używają protokołu TLS , a żaden punkt końcowy nigdy nie jest uwidaczniany w niezaszyfrowanych/niezabezpieczonych kanałach.
Niestandardowe punkty końcowe na potrzeby routingu komunikatów
Istniejące usługi platformy Azure w subskrypcjach platformy Azure można połączyć z centrum IoT Hub, aby działać jako punkty końcowe na potrzeby routingu komunikatów. Te punkty końcowe działają jako punkty końcowe usługi i są używane jako ujścia tras komunikatów. Urządzenia nie mogą zapisywać bezpośrednio do tych punktów końcowych. Aby uzyskać więcej informacji na temat routingu komunikatów, zobacz Używanie routingu komunikatów usługi IoT Hub w celu wysyłania komunikatów z urządzenia do chmury do różnych punktów końcowych.
Usługa IoT Hub obsługuje następujące usługi platformy Azure jako niestandardowe punkty końcowe:
- Kontenery magazynu
- Centra zdarzeń
- Kolejki „Service Bus”
- Tematy usługi Service Bus
- Cosmos DB
Aby uzyskać limity dotyczące punktów końcowych na koncentrator, zobacz Limity przydziału i ograniczanie przepustowości.
Wbudowany punkt końcowy
Można używać standardowej integracji usługi Event Hubs oraz zestawów SDK do odbioru komunikatów z urządzenia do chmury z wbudowanego punktu końcowego (messages/events). Po utworzeniu dowolnej trasy dane przestaną przepływać do wbudowanego punktu końcowego, chyba że zostanie utworzona trasa do wbudowanego punktu końcowego. Nawet jeśli nie utworzono żadnych tras, należy włączyć trasę rezerwową, aby kierować komunikaty do wbudowanego punktu końcowego. Plan awaryjny jest domyślnie włączony w przypadku tworzenia centrum przy użyciu portalu lub CLI.
Usługa Azure Storage jako punkt końcowy routingu
Istnieją dwie usługi magazynu, do których usługa IoT Hub może kierować komunikaty: Azure Blob Storage i konta usługi Azure Data Lake Storage Gen2 (ADLS Gen2). Oba te elementy używają blobów do przechowywania. Aby korzystać z Azure Data Lake Gen2, konto przechowywania musi mieć włączone hierarchiczne przestrzenie nazw. Aby uzyskać więcej informacji, sprawdź Tworzenie konta magazynu do użycia z usługą Azure Data Lake Storage.
Usługa IoT Hub obsługuje zapisywanie danych w usłudze Azure Storage w formacie Apache Avro i formacie JSON. Wartość domyślna to AVRO. Aby użyć kodowania JSON, ustaw właściwość contentType na application/json i contentEncoding na UTF-8 we właściwościach systemowych wiadomości. Obie te wartości są traktowane jako nieczułe na wielkość liter. Jeśli kodowanie zawartości nie jest ustawione, usługa IoT Hub zapisuje komunikaty w formacie zakodowanym w formacie base 64.
Format kodowania można ustawić tylko wtedy, gdy punkt końcowy magazynu obiektów blob jest skonfigurowany, nie można go edytować dla istniejącego punktu końcowego.
Usługa IoT Hub grupuje komunikaty i zapisuje dane w magazynie za każdym razem, gdy partia osiągnie określony rozmiar lub upłynie określony czas. Usługa IoT Hub domyślnie określa następującą konwencję nazewnictwa plików: {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. Możesz użyć dowolnej konwencji nazewnictwa plików, ale musisz użyć wszystkich wymienionych tokenów. Usługa IoT Hub zapisuje w pustym obiekcie blob, jeśli nie ma do zapisania żadnych danych.
Zalecamy wyświetlenie listy obiektów blob lub plików, a następnie iterowanie nad nimi, aby upewnić się, że wszystkie obiekty blob lub pliki są odczytywane bez wprowadzania żadnych założeń partycji. Zakres partycji może potencjalnie ulec zmianie podczas awaryjnego przełączenia zainicjowanego przez firmę Microsoft lub ręcznego przełączenia IoT Hub. Możesz użyć List Blobs API do wyliczenia listy obiektów blob lub List ADLS Gen2 API dla listy plików. Na przykład:
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);
}
}
}
Kolejki usługi Service Bus i tematy usługi Service Bus jako punkt końcowy routingu
Kolejki i tematy usługi Service Bus używane jako punkty końcowe usługi IoT Hub nie mogą mieć włączonych sesji ani wykrywania duplikatów. Jeśli którakolwiek z tych opcji jest włączona, punkt końcowy będzie wyświetlany jako Niemożliwy do osiągnięcia w witrynie Azure Portal.
Usługa Event Hubs jako punkt końcowy routingu
Oprócz wbudowanego punktu końcowego zgodnego z usługą Event Hubs można również kierować dane do niestandardowych punktów końcowych typu Event Hubs.
Usługa Azure Cosmos DB jako punkt końcowy routingu
Dane można wysyłać bezpośrednio do usługi Azure Cosmos DB z usługi IoT Hub. Usługa IoT Hub obsługuje zapisywanie do usługi Cosmos DB w formacie JSON (jeśli jest to określone w typie zawartości komunikatu) lub jako binarne zakodowane w formacie base 64.
Aby obsługiwać scenariusze o dużej skali, możesz włączyć syntetyczne klucze partycji dla punktu końcowego Cosmos DB. Ponieważ usługa Cosmos DB jest magazynem danych w hiperskali, wszystkie dane/dokumenty zapisywane w nim muszą zawierać pole reprezentujące partycję logiczną. Każda partycja logiczna ma maksymalny rozmiar 20 GB. Nazwę właściwości klucza partycji można określić w polu Nazwa klucza partycji. Nazwa właściwości klucza partycji jest definiowana na poziomie kontenera i nie można jej zaktualizować.
Możesz skonfigurować syntetyczną wartość klucza partycji, określając szablon w szablonie Klucza partycji na podstawie szacowanego woluminu danych. Na przykład w scenariuszach produkcyjnych partycja logiczna może zbliżać się do maksymalnego limitu 20 GB w ciągu miesiąca. W takim przypadku można zdefiniować syntetyczny klucz partycji jako kombinację identyfikatora urządzenia i miesiąca. Wygenerowana wartość klucza partycji jest automatycznie dodawana do właściwości klucza partycji dla każdego nowego rekordu usługi Cosmos DB, zapewniając, że partycje logiczne są tworzone co miesiąc dla każdego urządzenia.
Uwaga
Jeśli używasz przypisanej przez system tożsamości zarządzanej do uwierzytelniania w usłudze Cosmos DB, musisz użyć interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby przypisać wbudowaną definicję roli współautora danych usługi Cosmos DB do tożsamości. Przypisanie roli dla usługi Cosmos DB nie jest obecnie obsługiwane w witrynie Azure Portal. Aby uzyskać więcej informacji na temat różnych ról, zobacz Konfigurowanie dostępu opartego na rolach dla usługi Azure Cosmos DB. Aby zrozumieć przypisywanie ról za pomocą interfejsu wiersza polecenia, zobacz Zarządzanie zasobami roli SQL usługi Azure Cosmos DB.
Kondycja punktu końcowego
Aby uzyskać stan kondycji punktów końcowych, możesz użyć interfejsu API REST Get Endpoint Health . Zalecamy użycie metryk routingu IoT Hub związanych z opóźnieniem wiadomości w celu zidentyfikowania i rozwiązywania problemów, gdy punkt końcowy jest martwy lub niezdrowy, ponieważ spodziewamy się większego opóźnienia, gdy punkt końcowy znajduje się w jednym z tych stanów. Aby dowiedzieć się więcej na temat korzystania z metryk usługi IoT Hub, zobacz Monitorowanie usługi IoT Hub.
| Stan kondycji | Opis |
|---|---|
| w dobrej kondycji | Punkt końcowy akceptuje komunikaty zgodnie z oczekiwaniami. |
| w złej kondycji | Punkt końcowy nie akceptuje komunikatów, a usługa IoT Hub ponowi próbę wysłania komunikatów do tego punktu końcowego. |
| nieznany | Usługa IoT Hub nie próbowała dostarczać komunikatów do tego punktu końcowego. |
| Zdegradowany | Punkt końcowy akceptuje komunikaty wolniej niż oczekiwano lub dochodzi do siebie po awarii. |
| martwy | Usługa IoT Hub nie dostarcza już komunikatów do tego punktu końcowego. Ponowne próby wysyłania komunikatów do tego punktu końcowego nie powiodły się. |
Następne kroki
Dowiedz się więcej o tych tematach: