Вопросы и ответы о AWS IoT Greengrass

Общие вопросы

AWS IoT Greengrass – это периферийная среда выполнения и облачный сервис Интернета вещей (IoT) с открытым исходным кодом, с помощью которой можно создавать, развертывать и управлять ПО для устройств. Клиенты используют AWS IoT Greengrass для своих IoT-приложений на миллионах устройств в различных ситуациях: домах, предприятиях, транспортных средствах и компаниях. Вы можете запрограммировать свое устройство на локальные действия на основе генерируемых ими данных, на выполнение прогнозирования на основе моделей машинного обучения, на фильтрование и сбор данных об устройстве, а также передачу в облако лишь необходимой информации.

С помощью AWS IoT Greengrass можно быстро и легко создать умное ПО для устройства. AWS IoT Greengrass позволяет локально обрабатывать данные, передавать сообщения, управлять данными, получать логические выводы для машинного обучения, а также использовать другие встроенные компоненты для ускорения разработки приложений. AWS IoT Greengrass также предоставляет надежный способ подключения периферийных устройств к любым сервисам AWS, а также сервисам третьих сторон.

После разработки ПО AWS IoT Greengrass позволяет удаленно управлять ПО и использовать его на устройствах в рабочих условиях без потребности обновлять встроенное ПО. С помощью AWS IoT Greengrass можно обновлять устройства и со временем улучшать их работу.

Щелкните здесь, чтобы просмотреть руководство по началу работы с AWS IoT Greengrass. Вы можете просмотреть список поддерживаемых устройств в Каталоге устройств партнеров AWS IoT.

Актуальные сведения о том, в каких регионах доступен сервис AWS IoT Greengrass, представлены в таблице Регионов AWS.

AWS IoT Greengrass состоит из облачного сервиса и двух программных дистрибутивов для устройств IoT: AWS IoT Greengrass Core, SDK устройств AWS IoT и SDK AWS IoT Greengrass. После установки программного дистрибутива на устройстве можно добавлять или удалять функции и компоненты, а также управлять приложениями устройства IoT с помощью AWS IoT Greengrass.

На графике ниже показаны основные компоненты. AWS IoT Greengrass также поддерживает совместную работу с FreeRTOS. Дополнительные сведения об AWS IoT Greengrass и FreeRTOS см. в разделе вопросов и ответов о подключении FreeRTOS и других устройств к AWS IoT Greengrass.
 

  Цель Место работы
 
AWS IoT Greengrass Core Предоставляет локальные сервисы (вычисления, передача сообщений, состояние, безопасность) и локально взаимодействует с устройствами, на которых установлен SDK устройств AWS IoT Устройства на базе 64-разрядного ЦП (x86 или Arm), на которых установлена операционная система общего назначения (например, Linux).
 
SDK устройств AWS IoT Позволяет устройствам локально взаимодействовать с компонентами AWS IoT Greengrass Core Практически любое устройство, поддерживающее C++, Node.js, Java или Python 2.7, 3.7 и 3.8.
SDK AWS IoT Greengrass* Позволяет функциям Lambda взаимодействовать с локальными сервисами в AWS IoT Greengrass Core В функции Lambda, развернутой в AWS IoT Greengrass Core

* Требуется только для AWS IoT Greengrass версии 1

Программное обеспечение AWS IoT Greengrass Core работает на устройстве IoT, портале или шлюзе для автоматической синхронизации и взаимодействия с облаком. Компонент AWS IoT Greengrass Core предназначен для работы на устройствах с процессором общего назначения, достаточно мощным, чтобы на нем работала операционная система общего назначения, такая как Linux. Для работы сервиса AWS IoT Greengrass необходим процессор с частотой не менее 1 ГГц (либо Arm, либо x86), не менее 96 МБ оперативной памяти (периферийная среда выполнения версии 2.0 или выше), а также дополнительные ресурсы для размещения желаемой ОС и обеспечения пропускной способности при передаче сообщений и выполнения функций AWS Lambda, в зависимости от сценария использования. AWS IoT Greengrass Core может работать на различных устройствах от Raspberry Pi до устройств серверного уровня.

* На основе исследования AWS, во время которого использовались следующие JDK: версия JDK, использованная для тестирования: версия openjdk "1.8.0_275", OpenJDK Runtime Environment (версия 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) и OpenJDK 64-Bit Server VM (версия 25.275-b01, смешанный режим). С другими входящими данными использование памяти может быть выше.

AWS IoT Greengrass поддерживает функции Lambda, созданные с помощью следующих языков:

  • Python 2.7, 3.7 и 3.8
  • Node v8.10 и v12.x
  • Java 8 или выше
  • C
  • C++
  • любого языка, поддерживающего импорт библиотек C 

В AWS IoT Greengrass Core можно развертывать любые версии Lambda, в которых используется среда выполнения Lambda Python 2.7, 3.7 или 3.8, Node v8.10 или v12.x либо Java 8. Функции Lambda, развернутые в AWS IoT Greengrass, должны быть упакованы вместе с пакетом SDK AWS IoT Greengrass Core. Кроме того, чтобы упростить взаимодействие с сервисами AWS, например Amazon DynamoDB, можно добавить AWS SDK в пакет Lambda.

Обратите внимание, что некоторые облачные сервисы, необходимые для работы Lambda (например, DynamoDB), будут недоступны для функций Lambda, когда AWS IoT Greengrass Core находится в автономном режиме. Вызовы API к этим сервисам не будут работать в автономном режиме. Кроме того, функциям Lambda необходимо использовать подходящее пространство имен для каждого SDK AWS IoT Greengrass Core и AWS SDK, если оба SDK включены в один пакет.

Да, контейнеры Docker можно запускать на устройстве AWS IoT Greengrass, как и AWS IoT Greengrass можно запустить в среде контейнера Docker.

Пользователь может развертывать, запускать и контролировать контейнеры Docker с помощью AWS IoT Greengrass. Для создания образов Docker/Open Container Initiative (OCI) можно использовать любые инструменты сторонних производителей, а пользовательские образы Docker можно хранить в реестрах контейнеров Docker, таких как Amazon Elastic Container Registry (Amazon ECR), Docker Hub или в приватных реестрах Docker Trusted Registries (DTRs).

Да. Настроив группу AWS IoT Greengrass на работу без контейнеризации Lambda, вы можете запустить AWS IoT Greengrass в контейнере Docker. Для начала работы загрузите файл Docker для AWS IoT Greengrass по ссылке и см. документацию по извлечению образа Docker для AWS IoT Greengrass из Amazon ECR здесь. Развертывание AWS IoT Greengrass можно также выполнить в форме snap‑пакета (контейнерного пакета ПО для запуска на основе различных дистрибутивов Linux). Snap‑пакет AWS IoT Greengrass доступен по ссылке, начать работу можно здесь.

Да. Запустив AWS IoT Greengrass без контейнеризации Greengrass Lambda на уровне группы в контейнере Docker, вы сможете работать с AWS IoT Greengrass в Mac OS или ОС Windows. Подробнее см. в нашей документации.

В соглашении об уровне обслуживания AWS IoT Greengrass для облачного менеджмента оговаривается, что на счет вашего аккаунта может быть возвращена часть ежемесячной платы за обслуживание, если процент времени бесперебойной работы облачного сервиса AWS IoT Greengrass за месяц будет ниже 99,9 %.

С условиями и положениями SLA, а также с подробностями оформления заявки на компенсацию можно ознакомиться на странице сведений о соглашении об уровне обслуживания для AWS IoT Greengrass.

Начиная с AWS IoT Greengrass 2.0, периферийная среда выполнения и несколько компонентов имеют открытый исходный код и опубликованы в GitHub. Дополнительные сведения см. в списке компонентов с открытым исходным кодом.

Да. AWS IoT Greengrass – это периферийная среда выполнения с открытым исходным кодом, распространяемая на условиях лицензии Apache 2.0, поэтому ее можно изменять в соответствии с любыми требованиями для конкретной области применения или проекта без разрешения AWS.

Нет. Цена не зависит от версии. Дополнительную информацию о ценах см. на странице цен.

Доступ к локальным ресурсам

Локальный ресурс – это шины и периферийные устройства, физически присутствующие в узле AWS IoT Greengrass, или том с файловой системой в операционной системе узла AWS IoT Greengrass. Например, для связи с устройствами, подключенными по протоколу Modbus/CANbus, функции Lambda сервиса AWS IoT Greengrass потребуется доступ к последовательному порту устройства. Локальный ресурс определяется в области группы AWS IoT Greengrass, а все функции Lambda в группе AWS IoT Greengrass могут использовать определенные локальные ресурсы.

Локальные ресурсы AWS IoT Greengrass позволяют функциям Lambda безопасно взаимодействовать с оборудованием (таким как датчики и приводы). Например, функция Lambda может считывать видеопоток с камеры устройства или отправлять команды и управляющие сигналы через интерфейс ввода-вывода общего назначения.

Безопасность

Аппаратные корни доверия предоставляют защищенные от взлома среды выполнения, где истинный генератор случайных чисел может создавать частные ключи, используемые для функций шифрования. Эти аппаратные элементы безопасности устойчивы к взлому с помощью вредоносных программ и физически привязаны к тому или иному устройству IoT. Они устанавливают надежный корень доверия, на котором можно безопасно развертывать программное обеспечение.

Для начала необходимо запустить программное обеспечение AWS IoT Greengrass Core на периферийном устройстве с элементом безопасности. Следуя инструкциям поставщика оборудования, сгенерируйте частный ключ в этом элементе безопасности. Затем следуйте нашей документации, чтобы обновить параметры в файле config.json для использования частного ключа элемента безопасности.

Текущий список интегрированного программного обеспечения представлен в Каталоге устройств партнеров AWS.

Поставщики настраивают свои элементы безопасности на использование набора API стандарта PKCS#11 для интеграции с AWS IoT Greengrass. Поставщики используют набор средств тестирования, чтобы убедиться, что оборудование настроено правильно.

ML Inference

На устройствах AWS IoT Greengrass можно запустить ML Inference на базе локально сгенерированных данных, используя для этого модели, оптимизированные с помощью Amazon SageMaker Neo. Для подготовки устройства к получению логических выводов необходимо придерживаться инструкций по установке на него среды выполнения для глубокого обучения Neo. Подробнее см. в разделе документации об установке DLR.

Модель для целевой аппаратной платформы можно скомпилировать в Amazon SageMaker Neo и сберегать в корзине Amazon Simple Storage Service (Amazon S3). После выполнения этих действий можно сконфигурировать AWS IoT Greengrass таким образом, который позволит корзине Amazon S3 развертывать оптимизированную с помощью Neo модель для локального получения логических выводов на устройстве.

Собственную модель ML, обученную в другом месте, можно разместить в архиве формата TAR.GZ или ZIP в хранилище Amazon S3. После этого для развертывания модели на целевых устройствах следует сообщить URI хранилища Amazon S3 сервису AWS IoT Greengrass.

Возможность AWS IoT Greengrass ML Inference доступна во всех регионах, где доступен сервис AWS IoT Greengrass. Актуальные сведения о том, в каких регионах доступен сервис AWS IoT Greengrass, представлены в таблице Регионов AWS.

При наличии доступа к одному из этих регионов AWS использовать AWS IoT Greengrass ML Inference можно независимо от своего местоположения.

Компоненты AWS IoT Greengrass

Компоненты AWS IoT Greengrass – это строительные блоки, которые позволяют легко создавать сложные рабочие процессы, например получение логических выводов для машинного обучения, локальная обработка данных, передача сообщений и управление данными. В AWS IoT Greengrass также есть встроенные компоненты, например Stream Manager, которые обеспечивают экспорт данных в различные локальные и облачные хранилища. С помощью этих компонентов можно ускорить разработку приложения и не тратить время на понимание протоколов устройства, управление учетными данными или взаимодействие с внешними API, а взаимодействовать с сервисами AWS и приложениями третьих сторон можно без написания кода. Кроме того, в AWS IoT Greengrass можно создавать собственные компоненты. Поскольку все компоненты настраиваются и управляются на консоли AWS Greengrass, их цель – упростить разработку. Эти компоненты позволяют повторно использовать общую бизнес-логику с одного устройства AWS IoT Greengrass на другом благодаря возможностям простого обнаружения, импорта, настройки и развертывания компонентов на периферийных устройствах.

Компоненты AWS IoT Greengrass можно добавлять с помощью раздела компонентов каждой группы в консоли AWS IoT Greengrass. После добавления можно также настроить параметры компонентов AWS IoT Greengrass и развернуть группу, что добавить их на устройство AWS IoT Greengrass Core.

Все клиенты AWS IoT Greengrass могут использовать компоненты AWS IoT Greengrass с консоли AWS IoT Greengrass, доступ к которой можно получить с консоли управления AWS.

Доступные компоненты AWS IoT Greengrass перечислены в нашей документации.

Адаптеры протоколов

Так как функции Lambda, выполняющиеся в AWS IoT Greengrass Core, имеют доступ к сетевым ресурсам, пользователь может с их помощью реализовать поддержку любых протоколов, созданных на базе TCP/IP. Кроме того, используя возможности доступа к локальным ресурсам AWS IoT Greengrass, возможно реализовать поддержку протоколов, требующих доступа к адаптерам и драйверам оборудования.

AWS IoT Greengrass также предоставляет коннекторы адаптеров протоколов Modbus-RTU, Modbus-TCP и EtherNet/IP, которые позволяют устанавливать соединение с периферийными устройствами. Подробнее см. в документации для коннектора.

Вы можете воспользоваться коннектором IoT SiteWise для загрузки данных устройства с серверов OPC UA, коннектором Modbus-TCP для загрузки данных устройства с серверов Modbus-TCP и коннектором EtherNet/IP для загрузки данных устройства с серверов EtherNet/IP. Экспорт данных в AWS IoT SiteWise включен по умолчанию, и вы можете использовать собственные потоки для экспорта данных в AWS IoT Analytics, Amazon Kinesis и Amazon S3. Собственными потоками можно также воспользоваться для отправки данных в функции Lambda для локальной обработки перед экспортом данных. Как вариант, можно внедрить специальное решение на основе локально развернутых функций Lambda, чтобы собирать и обрабатывать данные устройств, а затем передавать их в целевые хранилища, расположенные локально или в облаке.

Обновления Over the Air (OTA)

Время от времени AWS публикует обновленные версии программного обеспечения AWS IoT Greengrass Core, преследуя следующие цели:

  • добавление новых или улучшенных функций;
  • исправление ошибок;
  • улучшение системы безопасности.

Благодаря обновлениям по беспроводной сети (OTA) в AWS IoT Greengrass клиенты могут получать все эти улучшения без необходимости вручную загружать и переустанавливать программное обеспечение AWS IoT Greengrass Core.

Нет. Вы в любой момент можете загрузить и установить обновления вручную либо использовать другой процесс развертывания ПО.

По мере выхода новых версий AWS IoT Greengrass Core мы сообщаем о них на форуме разработчиков программного обеспечения AWS IoT Greengrass. Ссылка на форум доступна здесь.

AWS IoT Device Tester для AWS IoT Greengrass

AWS IoT Device Tester для AWS IoT Greengrass – это средство автоматизации тестирования, с помощью которого можно самостоятельно тестировать и квалифицировать AWS IoT Greengrass на устройствах с Linux. AWS IoT Device Tester предоставляет коллекцию автоматизированных тестов, с помощью которых можно проверить, можно ли запустить AWS IoT Greengrass на тех или иных устройствах, а также могут ли они проходить аутентификацию в сервисах AWS IoT и взаимодействовать с ними.

Получить тестировщик устройства AWS IoT для AWS IoT Greengrass можно здесь.

AWS IoT Device Tester для AWS IoT Greengrass проверяет совместимость архитектуры ЦП, конфигурации ядра Linux и драйверов устройства с AWS IoT Greengrass, тестируя следующее:

  • установку необходимых программных пакетов; 
  • наличие необходимой конфигурации ядра AWS IoT Greengrass в ядре Linux (например, настройки ядра для групп cgroup);
  • установку обновлений по беспроводной сети;
  • возможность подключения устройств к сервисам AWS IoT и выполнения функций AWS Lambda;
  • функциональные возможности доступа к локальным ресурсам;
  • теневые функциональные возможности устройств.

Для получения поддержки используйте любой из следующих каналов.

Форум AWS, посвященный AWS IoT Greengrass

Premium Support

Поддержка пользователей

Если вы являетесь Партнером AWS, то Программа квалификации устройств AWS определяет процесс внесения устройства в каталог. Общий процесс выполнения этой процедуры описан ниже.

  1. Пройдите тест AWS IoT Device Tester для AWS IoT Greengrass.
     
  2. Войдите на портал партнерской сети AWS
     
  3. Отправьте отчет AWS IoT Device Tester. Когда AWS проверит отчет и будут отправлены все связанные с устройством артефакты (например, изображение и технические данные), устройство будет внесено в Каталог устройств партнеров AWS.

Тестировщик устройства AWS IoT для AWS IoT Greengrass доступен во всех регионах, где доступен сервис AWS IoT Greengrass.

Использование AWS IoT Device Tester для AWS IoT Greengrass бесплатно. Однако пользователь несет расходы, связанные с использованием AWS в ходе тестирования. Один запуск тестов AWS IoT Device Tester на одном устройстве AWS IoT Greengrass обходится менее чем в 20 центов.

Список операционных систем и вариантов архитектуры ЦП, поддерживаемых AWS IoT Greengrass Core и протестированных AWS на взаимную совместимость, приводится здесь. AWS IoT Greengrass также можно успешно запускать на других вариантах Linux, которые не были проверены на совместимость командой AWS IoT Greengrass. Можно проверить совместимость этих вариантов с помощью средства проверки зависимостей IoT Greengrass на веб-сайте GitHub. Или же можно запустить IoT Greengrass в так называемом режиме обработки: при этом снижается порог совместимости, но отсутствует поддержка контейнеров Linux.

AWS IoT Greengrass Core можно запускать на любых устройствах, соответствующих минимальным аппаратным и программным требованиям. Убедиться в возможности оптимальной работы AWS IoT Greengrass и других сервисов AWS на собственных устройствах пользователя можно с помощью AWS IoT Device Tester. Кроме того, оценить совместимость устройств с AWS IoT Greengrass можно в Каталоге устройств партнеров AWS.

Для того чтобы убедиться в совместимости устройств с AWS IoT Greengrass Core, можно проверить их с помощью AWS IoT Device Tester для AWS IoT Greengrass. Вы можете скачать этот инструмент и изучить документацию.

Подключение FreeRTOS и других устройств к AWS IoT Greengrass

Локальное подключение устройств к AWS IoT Greengrass Core можно выполнить с помощью FreeRTOS или SDK устройств AWS IoT. Функция обнаружения AWS IoT Greengrass доступна в SDK устройств AWS IoT на языках C++, Node.js, Java и Python 2.7, 3.7 и 3.8. Подробнее см. в руководстве разработчика по AWS IoT Greengrass. Для того чтобы найти устройство AWS IoT Greengrass Core и подключиться к нему, можно использовать библиотеку обнаружения AWS IoT Greengrass в исходном коде FreeRTOS.

Функция обнаружения AWS IoT Greengrass доступна в SDK устройств AWS IoT на языках C++, Node.js, Java и Python 2.7, 3.7 и 3.8. Подробнее см. в руководстве разработчика по AWS IoT Greengrass.

Да. Устройства FreeRTOS могут напрямую подключаться к облаку или AWS IoT Greengrass. FreeRTOS работает на устройствах Интернета вещей и часто выполняет функции «обнаружения» и «выполнения действий» в топологии Интернета вещей.

AWS IoT Greengrass – программное решение для безопасного выполнения таких задач, как локальные вычисления, передача сообщений, синхронизация, кэширование данных, а также формирование выводов с использованием машинного обучения для подключенных устройств. AWS IoT Greengrass позволяет подключенным устройствам выполнять функции AWS Lambda, контейнеры Docker или запускать оба варианта одновременно, а также синхронизировать данные устройств и безопасно взаимодействовать с другими устройствами даже без подключения к Интернету. Используя AWS Lambda, AWS IoT Greengrass позволяет устройствам Интернета вещей оперативно реагировать на локальные события, использовать функции Lambda, выполняющиеся в AWS IoT Greengrass Core, для взаимодействия с локальными ресурсами, работать с неустойчивым подключением, выполнять удаленное обновление по технологии Over the Air, а также свести к минимуму расходы на передачу данных Интернета вещей в облако.

FreeRTOS – это операционная система реального времени с открытым исходным кодом для микроконтроллеров, которая работает на оконечных устройствах и обычно не поддерживает наборы микросхем, с которыми может работать AWS IoT Greengrass. Такие микроконтроллеры используются в различных устройствах Интернета вещей, например в фитнес-трекерах, кардиостимуляторах, счетчиках электроэнергии, автомобильных трансмиссиях и сетях датчиков. Устройства на базе FreeRTOS не могут запускать AWS IoT Greengrass Core, но могут подключаться к устройствам AWS IoT Greengrass Core и обмениваться с ними сообщениями, обеспечивая локальную обработку данных для периферийных устройств.

У этих устройств разные требования к оборудованию и разные операционные системы.
 

  FreeRTOS AWS IoT Greengrass
Программное обеспечение Операционная система реального времени, работает на микроконтроллерах Среда выполнения для устройств с Linux и SDK для устройств с поддержкой AWS IoT Greengrass
Требования к оборудованию > 64 КБ ОЗУ

> 96 МБ* ОЗУ (периферийная среда выполнения версии 2.0 и более новой версии)

> 128 МБ ОЗУ (периферийная среда выполнения версии 1.11 или более поздней версии)

Категория Встраиваемые системы, конечные точки Интернета вещей Оконечные устройства, локальные шлюзы
Примеры использования Устройства на основе микроконтроллеров Системы промышленной автоматизации, беспроводные маршрутизаторы, видеокамеры, шлюзы

* На основе исследования AWS, во время которого использовались следующие JDK: версия JDK, использованная для тестирования: версия openjdk "1.8.0_275", OpenJDK Runtime Environment (версия 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) и OpenJDK 64-Bit Server VM (версия 25.275-b01, смешанный режим). С другими входящими данными использование памяти может быть выше.