Конечные точки Центра Интернета вещей

Центр Интернета вещей Azure предоставляет различные конечные точки для поддержки устройств и служб, взаимодействующих с ним.

Примечание.

Некоторые функции, упоминаемые в этой статье, например обмен сообщениями между облаком и устройством, двойники устройств и управление устройствами, доступны только для Центра Интернета вещей уровня "Стандартный". Дополнительные сведения о базовых и бесплатных уровнях Центр Интернета вещей см. в разделе "Выбор подходящего уровня Центр Интернета вещей" для решения.

Имена центров Интернета вещей

Имя узла центра Интернета вещей можно найти в портал Azure на рабочей панели "Обзор Центра Интернета вещей". По умолчанию DNS-имя центра Интернета вещей выглядит следующим образом:

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

Центр Интернета вещей конечные точки для разработки и управления

Центр Интернета вещей Azure — это мультитенантная служба, которая предоставляет функциональные возможности различным субъектам. На схеме ниже показаны разные конечные точки, которые предоставляет Центр Интернета вещей.

Схема, показывающая список конечных точек сборки Центр Интернета вещей.

В следующем списке описываются конечные точки.

  • Поставщик ресурсов: интерфейс Azure Resource Manager . С помощью этого интерфейса владельцы подписки Azure могут создавать и удалять Центры Интернета вещей, а также обновлять их свойства. Центр Интернета вещей свойства управляют политиками общего доступа на уровне концентратора, а не контролем доступа на уровне устройства, а также функциональными параметрами для обмена сообщениями между облаком и устройствами в облако. Поставщик ресурсов Центра Интернета вещей также позволяет экспортировать удостоверения устройств.

  • Управление удостоверениями устройств: набор конечных точек REST HTTPS для управления удостоверениями устройств (создание, извлечение, обновление и удаление). Удостоверения устройств нужны для аутентификации устройств и контроля доступа к ним.

  • Управление двойниками устройств: набор конечной точки REST для httpS для обслуживания для запроса и обновления двойников устройств (тегов и свойств обновления).

  • Управление заданиями: набор конечной точки REST для HTTPS для обслуживания для запроса заданий и управления ими.

  • Конечные точки устройства: набор конечных точек для каждого устройства в реестре удостоверений. Если не указано иное, эти конечные точки предоставляются по протоколам MQTT v3.1.1, HTTPS 1.1 и AMQP 1.0. Протоколы AMQP и MQTT также доступны в WebSockets через порт 443. К этим конечным точкам устройства относятся:

    • Отправка сообщений устройства в облако

    • Получение сообщений из облака на устройство

    • Запуск отправки файлов

    • Получение и обновление свойств двойника устройства (HTTPS не поддерживается)

    • Получение запросов прямого метода (HTTPS не поддерживается)

  • Конечные точки службы: набор конечных точек для внутреннего сервера решения для взаимодействия с устройствами. За одним исключением эти конечные точки предоставляются только через протоколы AMQP и AMQP в WebSockets. Конечная точка для вызова прямого метода предоставляется по протоколу HTTPS.

    • Получение сообщений из устройства в облако. Эта конечная точка — встроенная конечная точка, описанная в концепциях маршрутизации сообщений. С ее помощью во внутреннем приложении считываются сообщения, отправляемые с устройства в облако. Помимо этой встроенной конечной точки в Центре Интернета вещей можно создать пользовательские конечные точки.

    • Отправка сообщений из облака на устройство и подтверждение доставки

    • Получение уведомлений о отправке файлов

    • Вызов прямого метода

В статье Центр Интернета вещей Azure пакетов SDK описаны различные способы доступа к этим конечным точкам.

Все конечные точки Центра Интернета вещей используют протокол TLS. Кроме того, конечные точки не предоставляются по незашифрованным или незащищенным каналам.

Внимание

Следующие функции для устройств, использующих проверку подлинности центра сертификации X.509, пока недоступны, но режим предварительного просмотра должен быть включен:

  • протоколы HTTPS, MQTT через WebSockets и AMQP через WebSockets;
  • передача файлов (по всем протоколам).

Эти возможности обычно доступны на устройствах, использующих проверку подлинности X.509 с помощью отпечатка пальца. Дополнительные сведения о проверке подлинности на основе сертификата X.509 с помощью Центра Интернета вещей см. в разделе Поддерживаемые сертификаты X.509.

Пользовательские конечные точки для маршрутизации сообщений

Чтобы использовать существующие в подписке Azure службы Azure в качестве конечных точек для маршрутизации сообщений, их можно связать с центром Интернета вещей. Эти конечные точки действуют как конечные точки служб и используются в качестве приемников для маршрутов сообщений. Устройства не могут записывать данные непосредственно в эти конечные точки. Дополнительные сведения о маршрутизации сообщений см. в статье "Использование маршрутизации сообщений Центр Интернета вещей" для отправки сообщений устройства в облако в разные конечные точки.

Сейчас Центр Интернета вещей поддерживает использование следующих служб Azure в качестве пользовательских конечных точек:

  • Контейнеры хранилища
  • Event Hubs
  • Очереди служебной шины
  • Разделы служебной шины
  • Cosmos DB

Ограничения для конечных точек на концентратор см. в разделе "Квоты" и "Регулирование".

Встроенная конечная точка

Вы можете использовать стандартную интеграцию Центров событий и пакеты SDK, чтобы отправлять сообщения с устройства в облако из встроенной конечной точки (messages/events). После создания любого маршрута данные перестают передаваться в встроенную конечную точку, если маршрут не будет создан в этой конечной точке. Даже если маршруты не созданы, для маршрутизации сообщений во встроенную конечную точку необходимо включить резервный маршрут. Резервный маршрут включен по умолчанию, если концентратор создан с помощью портала или интерфейса командной строки.

Служба хранилища Microsoft Azure в качестве конечной точки маршрутизации

Есть две службы хранилища, к которым Центр Интернета вещей может маршрутизировать сообщения: Хранилище BLOB-объектов Azure и учетные записи Azure Data Lake Storage 2-го поколения (ADLS 2-го поколения). В обоих случаях для хранения используются BLOB-объекты.

Центр Интернета вещей поддерживает запись данных в службу хранилища Azure в формате Apache Avro и JSON. По умолчанию используется AVRO. Чтобы использовать кодировку JSON, задайте свойству contentType значение application/json и contentEncoding значение UTF-8 в свойствах системы сообщений. Оба этих значения не учитывают регистр. Если кодировка содержимого не задана, Центр Интернета вещей записывает сообщения в кодировке base 64.

Формат кодирования можно задать только в том случае, если конечная точка хранилища BLOB-объектов настроена; Его нельзя изменить для существующей конечной точки.

Центр Интернета вещей собирает сообщения в пакеты и записывает данные в хранилище при каждом достижении определенного размера пакета или после истечения отведенного времени. Центр Интернета вещей по умолчанию используется следующее соглашение об именовании файлов: {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}

Вы можете использовать любое соглашение об именовании файлов, но необходимо использовать все перечисленные маркеры. Центр Интернета вещей записывает в пустой большой двоичный объект, если нет данных для записи.

Мы рекомендуем перечислить большие двоичные объекты или файлы, а затем выполнить их итерацию, чтобы убедиться, что все большие двоичные объекты или файлы считываются без каких-либо предположений о секции. Диапазон секций может измениться в процессе инициированной корпорацией Майкрософт отработки отказа или при переходе на другой ресурс вручную с помощью Центра Интернета вещей. Вы можете использовать API перечисления BLOB-объектов или API перечисления ADLS 2-го поколения для составления списка файлов. Например:

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 2-го поколения, создайте новую учетную запись хранения версии 2 и выберите "Включить иерархическое пространство имен" в разделе Data Lake Storage 2-го поколения вкладки "Дополнительно", как показано на следующем рисунке:

Снимок экрана: выбор хранилища Azure Date Lake 2-го поколения.

служебная шина очереди и разделы служебная шина в качестве конечной точки маршрутизации

Для очередей и разделов служебной шины, которые используются как конечные точки Центра Интернета вещей, сеансы или поиск повторяющихся данных должны быть выключены. Если одна из этих возможностей включена, на портале Azure конечная точка будет отображаться как недоступная.

Центры событий в качестве конечной точки маршрутизации

Помимо конечной точки, совместимой со встроенными Центрами событий, вы также можете направлять данные в пользовательские конечные точки типа Центров событий.

Azure Cosmos DB в качестве конечной точки маршрутизации

Данные можно отправлять непосредственно в Azure Cosmos DB из Центр Интернета вещей. Центр Интернета вещей поддерживает запись в Cosmos DB в ФОРМАТЕ JSON (если указано в типе содержимого сообщения) или в виде двоичного файла в кодировке Base 64.

Для поддержки высокомасштабируемых сценариев можно включить искусственные ключи секций для конечной точки Cosmos DB. Так как Cosmos DB — это хранилище данных гипермасштабирования, все данные и документы, записанные в него, должны содержать поле, представляющее логическую секцию. Каждая логическая секция имеет максимальный размер 20 ГБ. Имя свойства ключа секции можно указать в имени ключа секции. Имя свойства ключа секции определяется на уровне контейнера и не может быть изменено после его установки.

Можно настроить значение искусственного ключа секции, указав шаблон в шаблоне ключа секции на основе предполагаемого тома данных. Например, в производственных сценариях логический раздел может подойти к максимальному ограничению в 20 ГБ в течение месяца. В этом случае можно определить искусственный ключ секции как сочетание идентификатора устройства и месяца. Созданное значение ключа секции автоматически добавляется в свойство ключа секции для каждой новой записи Cosmos DB, обеспечивая создание логических секций каждый месяц для каждого устройства.

Внимание

Если вы используете управляемое удостоверение, назначаемое системой для проверки подлинности в Cosmos DB, необходимо использовать Azure CLI или Azure PowerShell, чтобы назначить встроенное определение роли участника данных Cosmos DB встроенной роли идентификатору. Назначение ролей для Cosmos DB в настоящее время не поддерживается из портал Azure. Дополнительные сведения о различных ролях см. в статье "Настройка доступа на основе ролей для Azure Cosmos DB". Сведения о назначении ролей с помощью интерфейса командной строки см. в статье "Управление ресурсами роли SQL Azure Cosmos DB".

Состояние работоспособности конечной точки

Чтобы узнать состояние работоспособности конечных точек, можно использовать REST API Получить сведения о работоспособности конечной точки. Рекомендуется использовать метрики маршрутизации центра Интернета вещей, связанные с задержкой сообщений маршрутизации, для определения и отладки ошибок, когда конечная точка неисправна или неработоспособна, поскольку предполагается, что задержка увеличивается, если конечная точка находится в одном из этих состояний. Дополнительные сведения об использовании метрик центра Интернета вещей см. в статье Мониторинг центра Интернета вещей.

Состояние работоспособности Description
healthy Конечная точка принимает сообщения должным образом.
неработоспособный Конечная точка не принимает сообщения. Центр Интернета вещей повторяет попытку отправки сообщений в эту конечную точку.
неизвестно Центр Интернета вещей не предпринимал попытки доставить сообщения в эту конечную точку.
ухудшение работоспособности Конечная точка принимает сообщения медленнее, чем ожидалось, или восстанавливается из неработоспособного состояния.
не действует Центр Интернета вещей больше не доставляет сообщения в эту конечную точку. Попытки отправить сообщения в эту конечную точку завершены с ошибкой.

Следующие шаги

Дополнительные сведения об этих разделах: