Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Все практические руководства
    • Создание навыка Алисы
    • Развертывание веб-приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Запись данных с устройства в базу данных
    • Запись логов балансировщика в PostgreSQL
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Подключение к базе данных YDB из функции на Python
    • Подключение к базе данных YDB из функции на Node.js
    • Конвертация видео в GIF на Python
    • Создание функции Node.js с помощью TypeScript
    • Разработка пользовательской интеграции
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Автоматическое копирование объектов из одного бакета Object Storage в другой
    • Запуск вычислений по расписанию в DataSphere
    • Интерактивная отладка функций
    • Регулярное асинхронное распознавание аудиофайлов из Object Storage
    • Канареечный релиз функции Cloud Functions
    • Развертывание отказоустойчивой архитектуры с прерываемыми ВМ
    • Создание триггеров, которые вызывают функции для остановки ВМ и отправки уведомлений в Telegram
    • Загрузка данных из Яндекс Директ в витрину Yandex Managed Service for ClickHouse® с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
    • Эмуляция множества IoT-устройств
    • Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
    • Сокращатель ссылок
    • Yandex Tracker: экспорт и визуализация данных
    • Запуск вычислений в DataSphere с помощью API
    • Разработка Telegram-бота для распознавания текста и аудио
    • Настройка реагирования в Yandex Cloud Logging и Cloud Functions
    • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Подготовьте облако к работе
  • Установите Terraform
  • Из зеркала
  • С сайта HashiCorp
  • Опишите инфраструктуру
  • Разверните облачные ресурсы
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Эмуляция множества IoT-устройств

Эмуляция множества IoT-устройств

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Подготовьте облако к работе
  • Установите Terraform
    • Из зеркала
    • С сайта HashiCorp
  • Опишите инфраструктуру
  • Разверните облачные ресурсы
  • Удалите созданные ресурсы

В этом сценарии вы узнаете, как эмулировать множество устройств, которые отправляют сообщения в MQTT-топики. В примере эмулируется работа датчиков воздуха, которые измеряют следующие параметры:

  • Температура.
  • Влажность.
  • Давление.
  • Уровень содержания CO2.

Каждый датчик отправляет результат в формате JSON. Например:

{
  "DeviceId":"0e3ce1d0-1504-4325-972f-55c961319814",
  "TimeStamp":"2020-05-21T22:53:16Z",
  "Values":[{
    "Type":"Float",
    "Name":"Humidity",
    "Value":"25.281837"
  },
  {
    "Type":"Float",
    "Name":"CarbonDioxide",
    "Value":"67.96608"
  },
  {
    "Type":"Float",
    "Name":"Pressure",
    "Value":"110.7021"
  },
  {
    "Type":"Float",
    "Name":"Temperature",
    "Value":"127.708824"
  }]
}

Чтобы эмулировать работу множества устройств:

  1. Подготовьте облако к работе.
  2. Установите Terraform.
  3. Опишите инфраструктуру.
  4. Разверните облачные ресурсы.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Установите TerraformУстановите Terraform

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

Из зеркалаИз зеркала

Внимание

Зеркало может быть недоступно.

Вы можете скачать дистрибутив Terraform для вашей платформы из зеркала. После загрузки добавьте путь к папке, в которой находится исполняемый файл, в переменную PATH:

export PATH=$PATH:/path/to/terraform

С сайта HashiCorpС сайта HashiCorp

Windows
Linux
macOS

Используйте один из способов:

  • Скачайте дистрибутив Terraform и установите его согласно инструкции.

  • Установите Terraform с помощью пакетного менеджера Chocolatey, используя команду:

    choco install terraform
    

Скачайте дистрибутив Terraform и установите его согласно инструкции.

Используйте один из способов:

  • Скачайте дистрибутив Terraform и установите его согласно инструкции.

  • Установите Terraform с помощью пакетного менеджера Homebrew, используя команду:

    brew install terraform
    

Опишите инфраструктуруОпишите инфраструктуру

  1. Создайте папку iot-terraform. В ней будут храниться конфигурационные файлы Terraform.

  2. Скачайте архив с файлами, которые необходимы для выполнения сценария, и распакуйте в папку iot-terraform.

    Архив содержит:

    • common.tf — настройки провайдера Terraform.
    • files.tf — параметры публикации файлов кода из локальной папки.
    • function.tf — параметры функции для записи эмулированных сообщений в устройства.
    • iot_core.tf — параметры реестра, в котором находятся устройства.
    • output.tf.tf — выходные переменные.
    • publish — файлы, которые необходимы для создания функции.
    • service_account.tf — параметры сервисного аккаунта, который создается в сценарии.
    • trigger.tf — параметры триггера для вызова функции с заданным таймаутом.
    • variables.tf — используемые переменные и их значения.
  3. Отредактируйте файл variables.tf, указав следующие параметры для эмуляции:

    • token — OAuth-токен для доступа к Yandex Cloud.

    • cloud_id — идентификатор облака.

    • folder_id — идентификатор каталога.

    • zone — зона доступности.

    • device_count — количество эмулируемых устройств.

      Примечание

      Чтобы эмулировать работу более 1000 устройств, необходимо повысить квоты, сделав запрос в техническую поддержку.

    • subtopic_for_publish — сабтопик в формате $devices/<ID_устройства>/events/<сабтопик>.

    • publish_execution_timeout — таймаут отправки сообщений в секундах.

    • publish_cron_expression — расписание отправки сообщений в MQTT-топик в виде cron-выражения. По умолчанию сообщения отправляются каждую минуту.

    Остальные файлы можно оставить без изменений.

Разверните облачные ресурсыРазверните облачные ресурсы

  1. Перейдите в папку iot-terraform и проверьте конфигурацию командой:

    terraform validate
    

    Результат:

    Success! The configuration is valid.
    
  2. Отформатируйте файлы конфигураций в текущем каталоге и подкаталогах:

    terraform fmt
    

    Результат:

    main.tf
    variables.tf
    
  3. После проверки конфигурации выполните команду:

    terraform plan
    

    В терминале будет выведен список ресурсов с параметрами. Это проверочный этап: ресурсы не будут созданы. Если в конфигурации есть ошибки, Terraform на них укажет.

    Внимание

    Все созданные с помощью Terraform ресурсы тарифицируются. Внимательно проверьте план.

  4. Чтобы создать ресурсы, выполните команду:

    terraform apply
    
  5. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

    Результат:

    Outputs:
    
    function = "d4erep.......aq085f0"
    iot_core = "are.......ht10enkb3u"
    service_account = "ajestqfepa.......0l6"
    trigger = "a1sva8sse.......7kf6"
    

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

Удалите созданные ресурсыУдалите созданные ресурсы

Консоль управления
  1. Удалите реестр:
    1. Перейдите в свой рабочий каталог.
    2. В списке сервисов выберите IoT Core.
    3. Справа от имени созданного реестра нажмите и выберите Удалить.
    4. Нажмите кнопку Удалить.
  2. Удалите устройства:
    1. Перейдите в свой рабочий каталог.
    2. В списке сервисов выберите IoT Core.
    3. Выберите реестр.
    4. Перейдите на вкладку Устройства.
    5. Справа от имени созданного устройства нажмите и выберите Удалить.
    6. Нажмите кнопку Удалить.
  3. Удалите функцию:
    1. Перейдите в свой рабочий каталог.
    2. В списке сервисов выберите Cloud Functions.
    3. Справа от имени созданной функции нажмите и выберите Удалить.
    4. Нажмите кнопку Удалить.
  4. Удалите триггер:
    1. Перейдите в свой рабочий каталог.
    2. В списке сервисов выберите Cloud Functions.
    3. Перейдите на вкладку Триггеры.
    4. Справа от имени созданного триггера нажмите и выберите Удалить.
    5. Нажмите кнопку Удалить.
  5. Удалите сервисный аккаунт:
    1. Перейдите в свой рабочий каталог.
    2. В списке сервисов выберите Identity and Access Management.
    3. На панели слева выберите Сервисные аккаунты.
    4. В строке с именем созданного сервисного аккаунта нажмите и выберите Удалить.
    5. Нажмите кнопку Удалить.

Была ли статья полезна?

Предыдущая
Мониторинг показаний датчиков и уведомления о событиях
Следующая
Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
Проект Яндекса
© 2025 ООО «Яндекс.Облако»