Настройка Azure IoT Edge для Azure Sphere
Внимание
Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).
Azure IoT Edge предоставляет уровень фильтрации и обработки данных между подчиненным устройством, например Azure Sphere и Центр Интернета вещей Azure. Рассмотрите возможность использования Azure IoT Edge, если устройство Azure Sphere создает значительный объем данных или данных, требующих последующей обработки.
В этом разделе описаны действия по настройке устройства Azure IoT Edge с помощью Azure Sphere. Azure Sphere поддерживает обе версии 1.1 и 1.2 Azure IoT Edge; В инструкциях отмечены существенные различия. Основные различия:
- Имя пакета изменилось на
iotedge
aziot-edge
. - Файл конфигурации по умолчанию имеет новое имя и расположение. В Azure IoT Edge 1.1 файл конфигурации был /etc/iotedge/config.yaml. В Azure IoT Edge 1.2 файл конфигурации — /etc/aziot/config.toml.
- Для Azure IoT Edge 1.2 требуется полное доменное имя (FQDN), доступное через DNS-сервер в сети.
После выполнения задач в этом разделе устройство Azure Sphere будет настроено для отправки данных в Центр Интернета вещей Azure через устройство Azure IoT Edge, которое выступает в качестве прозрачного шлюза. Вы можете добавить дополнительные фильтры и обработку данных с помощью модуля на устройстве Azure IoT Edge, следуя руководству по модулю Azure IoT Edge.
Подготовка к работе
Действия, описанные в этом разделе, предполагают, что:
- Устройство Azure Sphere подключено к компьютеру через USB.
- у вас есть подписка Azure.
- Вы создали экземпляр Центр Интернета вещей Azure и вручную подготовили устройство. Обратите внимание, что вам потребуется использовать сертификат ЦС клиента для Центр Интернета вещей далее в процедуре (шаг 6).
- Вы создали группу ресурсов, а все ресурсы, связанные с Центр Интернета вещей Azure и службами IoT Edge, должны принадлежать этой группе ресурсов.
Внимание
Несмотря на то что подписку Azure можно создать бесплатно, процесс регистрации требует ввода номера кредитной карты. Azure предоставляет несколько уровней служб подписки. По умолчанию уровень "Стандартный", который требует ежемесячной платы за обслуживание, выбирается при создании экземпляра Центр Интернета вещей Azure. Чтобы избежать ежемесячной платы, выберите уровень "Бесплатный". Уровень "Бесплатный" включает службы, необходимые для использования устройства с Центр Интернета вещей Azure экземпляром, включая двойник устройства. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Обзор
Настройка устройства Azure IoT Edge и его настройка для работы с устройством Azure Sphere требует многофакторного процесса, и вы должны спланировать около 8 часов работы, особенно если вы не знакомы с Azure IoT Edge. Если вы впервые работаете с Azure IoT Edge, следуйте инструкциям краткого руководства в каждом разделе, чтобы настроить и настроить устройство IoT Edge, работающее на виртуальной машине Linux.
Эти действия необходимо выполнить только один раз на клиент Azure Sphere и устройство Azure IoT Edge; Однако каждое устройство Azure Sphere должно быть настроено вручную в Центр Интернета вещей Azure, а устройство Azure IoT Edge должно быть установлено в качестве родительского элемента устройства Azure Sphere.
Действия по настройке можно разбить на три логических группирования:
Создание и настройка устройства IoT Edge в качестве прозрачного шлюза
- Шаг 1. Создание устройства Azure IoT Edge.
- Шаг 2. Настройте устройство шлюза Azure IoT Edge в качестве сервера.
- Шаг 3. Откройте порты устройств шлюза Azure IoT Edge для обмена данными.
- Шаг 4. Обновите имя узла шлюза в config.toml (Azure IoT Edge версии 1.2) или config.yaml (Azure IoT Edge версии 1.1).
Настройка устройства Azure Sphere в Центр Интернета вещей Azure
- Шаг 5. Задайте для устройства Azure IoT Edge родительский элемент устройства Azure Sphere.
Установка надежного подключения между устройством Azure Sphere и устройством IoT Edge
- Шаг 6. Предоставьте сертификат ЦС клиента устройства Azure Sphere устройству Azure IoT Edge.
- Шаг 7. Укажите корневой сертификат ЦС устройства Azure IoT Edge на устройстве Azure Sphere.
Шаг 1. Создание устройства Azure IoT Edge
Необходимо настроить устройство Azure IoT Edge и зарегистрировать его в Центр Интернета вещей Azure, если это еще не сделано.
Службу подготовки устройств (DPS) можно использовать для подготовки устройства Azure IoT Edge. Однако для подготовки устройства Azure Sphere нельзя использовать DPS. Автоматическая подготовка устройств внизу устройства Azure IoT Edge с Центр Интернета вещей Azure DPS не поддерживается.
Вы можете выполнить действия, описанные в кратком руководстве по IoT Edge, чтобы настроить устройство Azure IoT Edge, работающее на виртуальной машине Linux или устройстве Windows, и зарегистрировать его с помощью Центр Интернета вещей Azure.
Выполните действия, описанные в кратком руководстве.
- Зарегистрируйте устройство Azure IoT Edge в Центр Интернета вещей Azure экземпляре. Не создавайте новый центр Интернета вещей на этом шаге, просто зарегистрируйте устройство Azure IoT Edge в центре Интернета вещей, который вы уже создали.
- Установите и запустите среду выполнения Azure IoT Edge на устройстве Azure IoT Edge.
Примечание.
В кратком руководстве по IoT Edge остановите работу перед развертыванием модуля.
Шаг 2. Настройка устройства шлюза IoT Edge в качестве сервера
Следуйте инструкциям по настройке устройства Azure IoT Edge для работы в качестве прозрачного шлюза (Azure IoT Edge 1.2) или Azure IoT Edge 1.1, но остановитесь, когда вы перейдете к разделу "Открыть порты на устройстве шлюза". Хотя эти инструкции позволяют скопировать файлы сертификатов на устройство IoT Edge, не копируйте файлы на виртуальную машину до шага 8 этой процедуры.
В рамках выполненных действий по настройке шлюза устройств в качестве сервера вы уже выполните следующие действия.
- Настройка сертификатов устройств Azure IoT Edge.
- Развернут модуль Центра Azure IoT Edge.
- Настроена маршрутизация сообщений через Azure IoT Edge.
Кроме того, в рамках этих действий вы создадете следующие сертификаты:
- Сертификат корневого ЦС:
certs/azure-iot-test-only.root.ca.cert.pem
- Сертификат ЦС устройства и закрытый ключ (используется для регистрации устройства IoT Edge в Центр Интернета вещей):
certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
private/iot-edge-device-identity-<cert-name>.key.pem
- Сертификат ЦС IoT Edge и закрытый ключ (копируются на устройство IoT Edge и ссылаются на его файл конфигурации):
certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
private/iot-edge-device-ca-<cert-name>.key.pem
При выполнении краткого руководства используйте инструкции Linux по настройке демонстрационных сертификатов, если компьютер, на котором создается сертификат, является компьютером под управлением Linux. Используйте инструкции Windows для создания демонстрационных сертификатов, если компьютер, на котором создается сертификат, является компьютером под управлением Windows. См. раздел для копирования корневых сертификатов на виртуальную машину Linux или на локальный компьютер Windows.
Сертификат корневого ЦС Azure IoT Edge будет изменен на шаге 7, но вам потребуется исходный сертификат на шаге 8. Сохраните копию исходного сертификата, чтобы его можно было повторно использовать.
Примечание.
При обновлении раздела сертификатов файла config.toml (Azure IoT Edge 1.2) или config.yaml (Azure IoT Edge 1.1) убедитесь, что строка в файле config.toml (Azure IoT Edge 1.2) или config.yaml (Azure IoT Edge 1.1) не имеет предыдущего пробела и что certificates:
каждая из вложенных сертификатов определяется двумя пробелами.
После обновления файла убедитесь, что модуль edgehub запущен на устройстве Azure IoT Edge:
sudo iotedge list
Дополнительные сведения см. в статье о том, как устройство IoT Edge можно использовать в качестве шлюза (Azure IoT Edge 1.2) или Azure IoT Edge 1.1.
Если вы используете тестовые сертификаты, остановите работу перед созданием нижнего сертификата устройства, как описано в статье "Создание подчиненных сертификатов устройств ( Azure IoT Edge 1.2) или Azure IoT Edge 1.1.
Шаг 3. Открытие портов устройств шлюза Azure IoT Edge для обмена данными
Устройства шлюза должны иметь возможность получать сообщения от своих подчиненных устройств. Чтобы сценарий шлюза работал, хотя бы один из поддерживаемых протоколов Центра Интернета вещей должен быть открыт для входящего трафика с подчиненных устройств.
Azure Sphere использует протокол MQTT. Этот протокол использует порт 8883.
Дополнительные сведения см. в статье "Открытые порты" на устройстве шлюза (Azure IoT Edge 1.2) или Azure IoT Edge 1.1.
Выполните следующие действия, чтобы открыть порт 8883 на виртуальной машине Windows после настройки пограничного устройства в кратком руководстве.
- При необходимости войдите в портал Azure с помощью учетной записи Azure.
- Перейдите к виртуальной машине, созданной на шаге 1. Создание устройства Azure IoT Edge.
- В разделе "Параметры" слева выберите "Сеть", а затем добавьте правило входящего порта.
- В колонке "Добавление правила входящего порта" в диапазонах портов назначения измените значение на 8883.
- В разделе "Протокол" выберите TCP.
- В разделе "Имя" измените значение на MQTT.
- Оставьте все остальные параметры в качестве значения по умолчанию и нажмите кнопку "Добавить".
Выполните следующие действия, чтобы открыть порт 8883 на виртуальной машине Linux после настройки устройства Azure IoT Edge в кратком руководстве.
Выполните следующую команду, чтобы проверить, открыт ли порт для MQTT:
sudo netstat -lptu
При необходимости используйте следующую команду, чтобы открыть порт:
sudo ufw allow 8883
Это позволит определить правило безопасности для входящего трафика, чтобы разрешить обмен данными для протокола MQTT с шлюзом Azure IoT Edge.
Шаг 4. Обновление имени узла шлюза
На этом шаге используются различные процедуры в зависимости от используемой версии Azure IoT Edge: Azure IoT Edge 1.2 или Azure IoT Edge 1.1.
Azure IoT Edge 1.2. Обновление имени узла шлюза в config.toml
Среда выполнения Azure IoT Edge поддерживает имена узлов, которые меньше 64 символов. Физические компьютеры обычно не имеют длинных имен узлов, но если вы используете виртуальную машину в качестве устройства Azure IoT Edge, например пример в кратком руководстве, необходимо вручную настроить имя узла.
Чтобы устранить неполадки с недопустимым именем узла, ознакомьтесь с распространенными разрешениями ошибок.
Выполните следующие действия, чтобы настроить имя узла устройства Azure IoT Edge после настройки порта MQTT в кратком руководстве.
Найдите полное доменное имя для шлюза IoT Edge, перейдя на устройство IoT Edge (виртуальная машина Linux) на портале Azure и скопируйте значение DNS-имени на странице обзора.
При необходимости войдите на устройство Azure IoT Edge.
Откройте файл config.toml в текстовом редакторе.
/etc/aziot/config.toml
Вставьте полное доменное имя в раздел имени узла config.toml. Все символы имени должны быть в нижнем регистре.
hostname: "<iotedge_machinename>.<mydomain>"
Примечание.
При проектировании с помощью Azure IoT Edge версии 1.2 и выше имя узла должно быть полным именем (IP-адрес больше не разрешен, как в версии 1.1); поэтому DNS-сервер с соответствующей записью A в той же сети является обязательным.
Перезапустите управляющую программу
iotedge
.sudo systemctl restart iotedge
Если в состоянии отображаются ошибки (цветной текст с префиксом "[ERROR]") проверьте журналы управляющей программы для получения подробных сведений об ошибке.
sudo journalctl -u iotedge --no-pager --no-full
Чтобы избежать предупреждений, настройте конфигурацию DNS для модулей на устройстве Azure IoT Edge, чтобы включить файл конфигурации в /etc/docker/daemon.json, например:
{ "dns": ["<IP address of your DNS server>"] }
Azure IoT Edge 1.1. Обновление имени узла шлюза в config.yaml
Среда выполнения Azure IoT Edge поддерживает имена узлов, которые меньше 64 символов. Физические компьютеры обычно не имеют длинных имен узлов, но если вы используете виртуальную машину в качестве устройства Azure IoT Edge, например пример в кратком руководстве, необходимо вручную настроить имя узла.
Чтобы устранить неполадки с недопустимым именем узла, ознакомьтесь с распространенными разрешениями ошибок.
Выполните следующие действия, чтобы настроить имя узла устройства Azure IoT Edge после настройки порта MQTT в кратком руководстве.
На портале Azure перейдите к виртуальной машине. Скопируйте значение DNS-имени (полное доменное имя компьютера) из раздела "Обзор ".
При необходимости войдите на устройство Azure IoT Edge.
Откройте файл config.yaml в текстовом редакторе.
/etc/iotedge/config.yaml
Вставьте полное доменное имя в раздел имени узла config.yaml. Все символы имени должны быть в нижнем регистре.
`hostname: "<machinename>.<region>.cloudapp.azure.com"`
Примечание.
Возможно, вам придется использовать имя виртуального компьютера для имени узла (IP-адреса или фактического имени узла), если сопоставитель DNS находится в сети, так как Azure Sphere не поддерживает netbios.
Перезапустите управляющую программу
iotedge
.sudo systemctl restart iotedge
Если в состоянии отображаются ошибки (цветной текст с префиксом "[ERROR]") проверьте журналы управляющей программы для получения подробных сведений об ошибке.
sudo journalctl -u iotedge --no-pager --no-full
Чтобы избежать предупреждений, настройте конфигурацию DNS для модулей на устройстве Azure IoT Edge, чтобы включить файл конфигурации в /etc/docker/daemon.json, например:
{ "dns": ["<IP address of your DNS server>"] }
Шаг 5. Установка устройства Azure IoT Edge в качестве родительского элемента устройства Azure Sphere
Выполните следующие действия, чтобы задать устройство Azure IoT Edge в качестве родительского элемента устройства Azure Sphere:
- Перейдите к устройству Azure Sphere, которое было подготовлено вручную выше.
- Выберите идентификатор устройства.
- Выберите значок шестеренки в разделе "Нет родительского устройства".
- Выберите устройство Azure IoT Edge, которое вы хотите задать в качестве родительского элемента.
- Нажмите кнопку ОК и щелкните Сохранить.
Теперь устройство Azure IoT Edge становится родительским элементом устройства Azure Sphere.
Шаг 6. Укажите сертификат ЦС клиента устройства Azure Sphere устройству IoT Edge
Чтобы проверить сертификаты устройств Azure Sphere, устройство Azure IoT Edge должно иметь собственную копию ЦС клиента.
Скачайте сертификат ЦС клиента, если вы еще не сделали этого. Примечание. Вы уже выполнили это в рамках настройки Центр Интернета вещей Azure.
В командной строке войдите с помощью имени входа в Azure Sphere:
azsphere login
Скачайте сертификат ЦС для клиента Azure Sphere. Эта команда загружает сертификат в файл с именем CAcertificate.cer в текущем рабочем каталоге. Убедитесь, что файл скачан в каталог, в котором есть разрешение на запись, или операция скачивания завершится ошибкой. Выходной файл должен иметь расширение .cer.
azsphere ca-certificate download --destination CAcertificate.cer
Преобразуйте сертификат ЦС клиента в формат PEM. Ниже приведены примеры инструкций по преобразованию формата на компьютере Windows.
- Найдите путь сертификата на компьютере и дважды щелкните сертификат, чтобы открыть его.
- Откройте вкладку "Сведения" и выберите " Копировать в файл".
- В мастере экспорта сертификатов нажмите кнопку "Далее".
- Выберите формат X.509 (CER) в кодировке Base-64, а затем нажмите кнопку "Далее".
- Введите имя файла для экспорта сертификата, а затем нажмите кнопку "Далее".
- Нажмите кнопку "Готово ", чтобы завершить работу мастера.
- Переименуйте скачанный файл сертификата, чтобы иметь расширение PEM-файла.
Добавьте сертификат клиента в корневой сертификат Azure IoT Edge. Помните, что вы создали сертификаты Azure IoT Edge на шаге 2.
- При необходимости войдите на устройство Azure IoT Edge.
- Найдите путь к корневому сертификату ЦС устройства IoT Edge и откройте его в текстовом редакторе. Если вы последовали за кратким руководством, затем использовали скрипты, предоставленные в репозитории Git Azure IoT Edge для создания демонстрационных сертификатов, корневой сертификат ЦС называется azure-iot-test-only.root.ca.cert.pem.
- Откройте сертификат ЦС клиента Azure Sphere (в формате PEM) в текстовом редакторе. Скопируйте содержимое и вставьте его в конец корневого ЦС IoT Edge.
- Сохраните изменения, внесенные в корневой сертификат ЦС Azure IoT Edge, а затем закройте файл.
- Перезапустите устройство Azure IoT Edge. Для устройства Linux Azure IoT Edge выполните следующую
sudo systemctl restart iotedge
команду: - Убедитесь, что модули выполняются на устройстве Azure IoT Edge. Для устройства Linux Azure IoT Edge выполните следующую
sudo iotedge list
команду:
Шаг 7. Укажите корневой сертификат ЦС устройства Azure IoT Edge на устройстве Azure Sphere
Чтобы проверить сертификаты устройств Azure IoT Edge, устройство Azure Sphere (нижнее устройство) должно иметь собственную копию корневого сертификата ЦС устройства Azure IoT Edge, настроенного на шаге 2.
Дополнительные сведения см. в статье "Подключение нижнего устройства к шлюзу Azure IoT Edge".
Найдите исходный корневой сертификат устройства Azure IoT Edge.
- Помните, что исходный корневой сертификат устройства Azure IoT Edge — это сертификат, созданный на шаге 2.
- Если вы последовали за кратким руководством и использовали скрипты, предоставленные в репозитории Git IoT Edge для создания демонстрационных сертификатов, корневой сертификат ЦС называется azure-iot-test-only.root.ca.cert.pem.
Скопируйте корневой сертификат Azure IoT Edge на устройство Azure Sphere, добавив его в пакет приложения.
- Подробные инструкции см. в разделе "Создание пакета образа".
- См. раздел для копирования корневых сертификатов на виртуальную машину Linux или на локальный компьютер Windows.
Шаг 8. Копирование корневого сертификата Интернета вещей на удаленный компьютер
Выполните следующие действия, чтобы скопировать корневой сертификат Azure IoT Edge на удаленную виртуальную машину Linux или на локальный компьютер Windows:
Средство WinSCP можно установить для передачи файлов. Это средство предоставляет графический интерфейс, поэтому его проще использовать, чем подход командной строки.
Чтобы использовать командную строку, используйте программу командной строки SCP (безопасная копия).
Чтобы передать файл с локального компьютера Windows на удаленную виртуальную машину Linux, выполните следующую команду в Windows PowerShell:
powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
Пример синтаксиса:
scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
Чтобы передать файл с удаленной виртуальной машины Linux на локальный компьютер Windows, выполните следующую команду в Windows PowerShell:
powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
Пример синтаксиса:
scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\
Устранение неполадок
При возникновении проблем с запуском Azure IoT Edge в вашей среде используйте следующие статьи для устранения неполадок и диагностика:
Устранение неполадок устройства IoT Edge (Azure IoT Edge 1.2) или Azure IoT Edge 1.1
Распространенные проблемы и решения для Azure IoT Edge (Azure IoT Edge 1.2) или Azure IoT Edge 1.1
Следующие шаги
- После выполнения действий, описанных в этом разделе, вы можете запустить пример Интернета вещей Azure, следуя инструкциям по подключению с помощью Azure IoT Edge.