Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Сценарии использования
  • Веб-сервис
    • Все сценарии
    • Cтатический сайт в Object Storage
    • Cайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Yandex Load Balancer
    • Отказоустойчивый сайт с использованием DNS-балансировки
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Веб-сайт на базе 1С-Битрикс
  • Интернет-магазины
    • Все сценарии
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все сценарии
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage через CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage через Bacula
    • Резервное копирование в Object Storage через Veritas Backup Exec
    • Оцифровка архива в Yandex Vision
  • Тестовая среда
    • Все сценарии
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
  • Управление инфраструктурой
    • Все сценарии
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Создание кластера Windows-серверов «1С:Предприятия» с базой данных MS SQL Server
    • Миграция в Yandex.Cloud с помощью Hystax Acura
    • Аварийное восстановление в Yandex.Cloud с помощью Hystax Acura
    • Настройка отказоустойчивой архитектуры в Yandex.Cloud
  • Windows в Yandex.Cloud
    • Все сценарии
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
  • Сетевая маршрутизация
    • Все сценарии
    • Маршрутизация с помощью NAT-инстанса
    • Создание VPN-туннеля
    • Установка виртуального роутера Cisco CSR1000v
    • Установка виртуального роутера Mikrotik CHR
    • Создание VPN-соединения с помощью OpenVPN
  • Визуализация и анализ данных
    • Все сценарии
    • Визуализация данных из CSV-файла
    • Визуализация данных из базы данных ClickHouse
    • Визуализация данных из Метрики
    • Визуализация данных из Metriсa Logs API
    • Публикация в DataLens Public диаграммы с картой на основе CSV-файла
    • Визуализация данных из AppMetrica
    • Визуализация геоданных из CSV-файла
    • Визуализация данных из базы данных ClickHouse с геослоями из Marketplace
    • Визуализация данных из статистики подкастов Яндекс.Музыки
  • Интернет вещей
    • Сценарии работы с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
  1. Интернет вещей
  2. Мониторинг состояния географически распределенных устройств

Мониторинг состояния географически распределенных устройств

  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте необходимые ресурсы Yandex IoT Core
    • Создайте реестр и настройте авторизацию по логину и паролю
    • Создайте устройство и настройте авторизацию по логину и паролю
  • Создайте эмулятор устройств в Cloud Functions
    • Создайте функцию эмуляции отправки данных с устройства
    • Протестируйте функцию эмуляции
    • Создайте триггер вызова функции один раз в минуту
  • Создайте кластер в Yandex Managed Service for PostgreSQL
  • Создайте функцию обработки данных в Yandex Cloud Functions
    • Создайте функцию обработки принимаемых данных
    • Протестируйте функцию обработки данных
    • Просмотрите результат обработки данных в Managed Service for PostgreSQL
    • Создайте триггер вызова функции обработки данных
    • Просмотрите результат работы триггера в Managed Service for PostgreSQL
  • Настройте мониторинг в Yandex DataLens
    • Настройте подключение к Managed Service for PostgreSQL
    • Создайте датасет
    • Создайте чарт по показателям температуры и напряжения сети
    • Создайте чарт с картой
    • Создайте дашборд

В этом сценарии вы настроите мониторинг состояния устройств (например, вендинговых аппаратов), подключенных к сервису Yandex IoT Core и расположенных в разных точках города. Датчики будут эмулированы с помощью сервиса Yandex Cloud Functions. Если у вас есть подключенные датчики, используйте их. Вы можете наблюдать за состоянием автоматов на карте и графиках сервиса Yandex DataLens.

Исходный код этого сценария доступен на GitHub.

Чтобы настроить мониторинг показаний датчиков в серверной комнате:

  1. Подготовьте облако к работе.
  2. Необходимые платные ресурсы.
  3. Создайте необходимые ресурсы Yandex IoT Core.
    1. Создайте реестр.
    2. Создайте устройства.
  4. Создайте эмулятор устройства в Yandex Cloud Functions.
    1. Создайте функцию эмуляции отправки данных с устройств.
    2. Протестируйте функцию эмуляции отправки данных.
    3. Создайте триггер вызова функции эмуляции один раз в минуту.
  5. Создайте кластер в Yandex Managed Service for PostgreSQL.
  6. Создайте функцию обработки данных в Yandex Cloud Functions.
    1. Создайте функцию обработки принимаемых данных.
    2. Протестируйте функцию обработки данных.
    3. Просмотрите результат обработки данных в Managed Service for PostgreSQL.
    4. Создайте триггер вызова функции обработки данных.
    5. Просмотрите результат работы триггера в Managed Service for PostgreSQL.
  7. Настройте мониторинг в Yandex DataLens
    1. Настройте подключение к Managed Service for PostgreSQL
    2. Создайте датасет
    3. Создайте чарт по показателям температуры и напряжения сети
    4. Создайте чарт с картой
    5. Создайте дашборд

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

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

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

Убедитесь, что платежный аккаунт готов к работе:

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

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

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

Необходимые платные ресурсы

В стоимость входят:

  • плата за количество сообщений сервиса Yandex IoT Core (см. тарифы);
  • плата за количество вызовов функции сервиса Yandex Cloud Functions (см. тарифы);
  • плата за вычислительные ресурсы и хранилище кластера в сервисе Yandex Managed Service for PostgreSQL (см. тарифы).
  • плата за обмен данными с устройствами в сервисе Yandex DataLens (см. тарифы).

Создайте необходимые ресурсы Yandex IoT Core

Для работы с сервисом Yandex IoT Core вам потребуется создать реестр и устройства, которые будут обмениваться данными и командами.

Создайте реестр и настройте авторизацию по логину и паролю

Чтобы создать реестр:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.

  2. Выберите сервис Yandex IoT Core.

  3. Нажмите кнопку Создать реестр.

  4. В поле Имя введите имя реестра. Например, my-registry.

  5. В поле Пароль задайте пароль доступа к реестру.

    Пароль должен быть длиной не менее 14 символов, должен содержать строчные буквы, заглавные буквы и цифры.
    Для создания пароля можно воспользоваться генератором паролей.

  6. Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.

  7. (опционально) В поле Описание добавьте дополнительную информацию о реестре.

  8. Нажмите кнопку Создать.

Вы также можете использовать авторизацию с помощью сертификатов. Подробнее об авторизации в Yandex IoT Core.

Создайте устройство и настройте авторизацию по логину и паролю

Создайте три устройства: my-device-1, my-device-2 и my-device-3.

Чтобы создать устройство:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.

  2. Выберите сервис Yandex IoT Core.

  3. Выберите реестр, созданный на предыдущем шаге.

  4. В левой части окна выберите раздел Устройства.

  5. Нажмите кнопку Добавить устройство.

  6. В поле Имя введите имя устройства. Например, my-device-1.

  7. В поле Пароль задайте пароль доступа к устройству.

    Для создания пароля можно воспользоваться генератором паролей.
    Пароль должен быть длиной не менее 14 символов, должен содержать строчные буквы, заглавные буквы и цифры.

  8. Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.

  9. (опционально) В поле Описание добавьте дополнительную информацию об устройстве.

  10. (опционально) Добавьте алиасы:

    1. Нажмите кнопку Добавить алиас.

    2. Нажмите кнопку Изменить.

    3. Заполните поля: введите алиас (например events) и тип топика после $devices/<deviceID> (например events).

      Вы сможете использовать алиас events вместо топика $devices/<deviceID>/events.

    4. Повторите действия для каждого добавляемого алиаса.

  11. Нажмите кнопку Создать.

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

Вы также можете использовать авторизацию с помощью сертификатов. Подробнее об авторизации в Yandex IoT Core.

Создайте эмулятор устройств в Cloud Functions

Эмулятор отправит данные с устройств в кластер Yandex Managed Service for PostgreSQL.

Вам потребуется:

  • создать и протестировать функцию эмуляции отправки данных с датчиков каждого устройства;
  • создать триггер вызова функции эмуляции один раз в минуту.

Создайте функцию эмуляции отправки данных с устройства

Чтобы создать функцию:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Cloud Functions.
  3. В левой части окна выберите раздел Функции.
  4. Нажмите кнопку Создать функцию.
  5. В поле Имя введите имя функции. Например, my-device-emulator-function.
  6. (опционально) В поле Описание добавьте дополнительную информацию о функции.
  7. Нажмите кнопку Создать.
  8. В открывшемся окне Редактор в списке Среда выполнения выберите nodejs12.
  9. Выберите Способ: Редактор кода.
  10. В левой части окна Редактор кода нажмите кнопку Создать файл.
  11. В открывшемся окне Новый файл ведите имя файла device-emulator.js.
  12. Нажмите кнопку Создать.
  13. Выберите созданный файл в левой части окна Редактор кода.
  14. В правой части окна Редактор кода вставьте код функции с GitHub.
  15. В поле Точка входа окна Редактор введите device-emulator.handler.
  16. В поле Таймаут, с введите 10.
  17. В поле Память оставьте значение 128 МБ.
  18. Создайте сервисный аккаунт, от имени которого функция отправит данные в Yandex IoT Core:
    1. Нажмите кнопку Создать аккаунт.
    2. В открывшемся окне Создание сервисного аккаунта в поле Имя введите имя аккаунта. Например, my-emulator-function-service-account.
    3. Добавьте роли получения списка устройств и записи в ресурсы viewer и iot.devices.writer:
      1. Нажмите на значок .
      2. Выберите роль в списке.
      3. Нажмите кнопку Создать.
  19. Настройте параметр Переменные окружения каждого датчика серверной комнаты:
    1. Нажмите кнопку Добавить переменную окружения.

    2. Заполните поля Ключ и Значение переменных окружения:

      Ключ Описание Значение
      CASH_DRAWER_SENSOR_VALUE Процент заполненности отсека купюр. 67.89
      COIN_DRAWER_SENSOR_VALUE Процент заполненности отсека монет. 67.89
      TEMPERATURE_SENSOR_VALUE Базовое значение температуры в отсеке выдачи товара. 10.34
      POWER_SENSOR_VALUE Базовое значение напряжения сети. 24.12
      SERVICE_DOOR_SENSOR_VALUE Показания датчика открытия сервисной дверцы. False
      ITEM1_SENSOR_VALUE Остаток товара типа 1. 50.65
      ITEM2_SENSOR_VALUE Остаток товара типа 2. 80.97
      ITEM3_SENSOR_VALUE Остаток товара типа 3. 30.33
      ITEM4_SENSOR_VALUE Остаток товара типа 4. 15.15
      REGISTRY_ID Идентификатор реестра, который вы создали См. консоль управления
      сервиса Yandex IoT Core
  20. В правой верхней части окна нажмите кнопку Создать версию.

Протестируйте функцию эмуляции

Чтобы протестировать функцию:

  1. (опционально) Для получения подробной информации с датчиков, подпишите реестр на топик устройства Yandex IoT Core, где$devices/<deviceID>/events/ — топик устройства, <deviceID> — ID устройства в сервисе:

    CLI

    Выполните команду:

    $ yc iot mqtt subscribe \
          --username <ID реестра> \
          --password <пароль реестра> \
          --topic '$devices/<ID устройства>/events' \
          --qos 1
    

    Где:

    • --username и --password — параметры для авторизации с помощью логина и пароля.
    • --topic — топик устройства для отправки данных.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).

    Подробнее о подписке на топики устройства в Yandex IoT Core.

  2. В консоли управления выберите каталог, в котором вы выполняете сценарий.

  3. Выберите сервис Cloud Functions.

  4. В левой части окна выберите раздел Тестирование.

  5. В списке Тег версии выберите $latest — последнюю созданную функцию.

  6. Нажмите кнопку Запустить тест.

При успешном выполнении функции в поле Состояние функции отобразится статус Выполнена и в поле Ответ функции результат:

{
"statusCode" : 200
}

Если вы подписались на топик устройства Yandex IoT Core, вы получите JSON вида:

{
"DeviceId":"arealt9f3jh445it1laq",
"TimeStamp":"2020-07-21T22:38:12Z",
"Values":[
    {"Type":"Bool","Name":"Service door sensor","Value":"false"},
    {"Type":"Float","Name":"Power Voltage","Value":"24.12"},
    {"Type":"Float","Name":"Temperature","Value":"10.34"},
    {"Type":"Float","Name":"Cash drawer fullness","Value":"67.89"},
    {"Type":"Float","Name":"Coin drawer fullness","Value":"67.89"},
    {"Items":[
       {"Type":"Float", "Id":"1","Name":"Item 1","Fullness":"50.65"},
       {"Type":"Float", "Id":"2","Name":"Item 2","Fullness":"80.97"},
       {"Type":"Float", "Id":"3","Name":"Item 3","Fullness":"30.33"},
       {"Type":"Float", "Id":"4","Name":"Item 4","Fullness":"15.15"},
	]}
	]
}

Подробнее об MQTT-топиках в сервисе Yandex IoT Core.

Создайте триггер вызова функции один раз в минуту

Чтобы создать триггер:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Cloud Functions.
  3. Выберите раздел Триггеры.
  4. Нажмите кнопку Создать триггер.
  5. В поле Имя введите имя триггера. Например, my-emulator-function-trigger.
  6. (опционально) В поле Описание добавьте дополнительную информацию о триггере.
  7. Выберите Тип: Таймер.
  8. В поле Cron-выражение введите * * * * ? * (вызов один раз в минуту).
  9. В блоке Настройки функции введите ранее заданные параметры функции:
    • Функция: my-device-emulator-function.
    • Тег версии функции: $latest.
    • Сервисный аккаунт: my-emulator-function-service-account.
  10. (опционально) Настройте параметры блоков Настройки повторных запросов и Настройки Dead Letter Queue. Они обеспечивают сохранность данных.
    • Настройки повторных запросов позволяют повторно вызывать функцию, если текущий вызов функции завершается с ошибкой.
    • Настройки Dead Letter Queue позволяют перенаправлять сообщения, которые не смогли обработать получатели в обычных очередях.
      В качестве DLQ очереди вы можете настроить стандартную очередь сообщений. Если вы еще не создавали очередь сообщений, создайте ее в сервисе Yandex Message Queue.
  11. Нажмите кнопку Создать триггер.

Создайте кластер в Yandex Managed Service for PostgreSQL

В примере используются минимальные значения параметров хоста. Для реальных задач рекомендуется выбирать хосты с гарантированной долей vCPU 100%.

Чтобы создать кластер:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex Managed Service for PostgreSQL.
  3. Выберите раздел Кластеры.
  4. Нажмите кнопку Создать кластер.
  5. В блоке Базовые параметры в поле Имя кластера введите, например, my-pg-database.
  6. (опционально) В поле Описание добавьте дополнительную информацию о кластере.
  7. В списке Окружение выберите PRODUCTION.
  8. В списке Версия выберите 12.
  9. В блоке Класс хоста в списке Платформа выберите Intel Cascade Lake.
  10. Выберите тип виртуальной машины: на вкладке burstable тип b2.nano.
  11. В блоке Размер хранилища выберите вкладку network-hdd.
  12. Укажите размер хранилища 10 ГБ.
  13. В блоке База данных:
    • В поле Имя БД введите db1.

    • В поле Имя пользователя введите user1.

    • В поле Пароль задайте пароль доступа к базе.

      Не забудьте сохранить пароль, он вам понадобится.

  14. Значения полей Локаль сортировки и Локаль набора символов оставьте без изменений. По умолчанию установлено значение C.
  15. В блоке Сеть в списке выберите default.
  16. В блоке Хосты настройте подключение к вашей базе данных через публичный IP-адрес (это необходимо для доступа к базе из Yandex Cloud Functions).
    1. Справа в правой части строки зоны доступа нажмите на значок .
    2. В открывшемся окне выберите Зону доступности. Например ru-central1-a.
    3. Выберите Подсеть. Например default-ru-central1-a.
    4. Включите Публичный доступ.
    5. Нажмите кнопку Сохранить.
  17. Включите Доступ из DataLens.
  18. Нажмите кнопку Создать кластер.

Кластер будет создаваться несколько минут. В результате отобразится окно с данными кластера.

Создайте функцию обработки данных в Yandex Cloud Functions

Функция обрабатывает данные от устройств.

Создайте функцию обработки принимаемых данных

Чтобы создать функцию:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Cloud Functions.
  3. В левой части окна выберите раздел Функции.
  4. Нажмите кнопку Создать функцию.
  5. В поле Имя введите имя функции. Например, my-db-function.
  6. (опционально) В поле Описание добавьте дополнительную информацию о функции.
  7. Нажмите кнопку Создать.
  8. В открывшемся окне Редактор в списке Среда выполнения выберите python37.
  9. Выберите Способ: нажмите на вкладку Редактор кода.
  10. В левой части окна Редактор кода нажмите кнопку Создать файл.
  11. В открывшемся окне Новый файл ведите имя файла myfunction.py.
  12. Нажмите кнопку Создать.
  13. В левой части окна Редактор кода выберите созданный файл.
  14. В правой части окна вставьте код функции с GitHub.
  15. В поле Точка входа окна Редактор введите myfunction.msgHandler.
  16. В поле Таймаут, с введите 10.
  17. В поле Память оставьте значение 128 МБ.
  18. Создайте сервисный аккаунт, от имени которого функция обработает данные, полученные от устройства:
    1. Нажмите кнопку Создать аккаунт.
    2. В открывшемся окне Создание сервисного аккаунта в поле Имя введите имя аккаунта. Например, my-db-function-service-account.
    3. Добавьте роли вызова функции и изменения ресурсов serverless.functions.invoker и editor:
      1. Нажмите на значок .
      2. Выберите роль в списке.
      3. Нажмите кнопку Создать.
  19. Настройте параметр Переменные окружения. Параметры подключения к базе данных вы можете посмотреть в сервисе Yandex Managed Service for PostgreSQL.
    1. Нажмите кнопку Добавить переменную окружения.

    2. Заполните поля Ключ и Значение переменных окружения:

      Ключ Описание Значение
      VERBOSE_LOG Включение и отключение записи данных. True
      DB_HOSTNAME Имя хоста в Yandex Managed Service for PostgreSQL. См. в консоли управления
      сервиса Yandex Managed Service for PostgreSQL
      DB_PORT Порт подключения к кластеру в Yandex Managed Service for PostgreSQL. 6432
      DB_NAME Имя кластера в Yandex Managed Service for PostgreSQL. db1
      DB_USER Имя пользователя для подключения к кластеру в Yandex Managed Service for PostgreSQL. user1
      DB_PASSWORD Пароль подключения к кластеру в Yandex Managed Service for PostgreSQL. Пароль, который вы задали в Yandex Managed Service for PostgreSQL.
  20. В правой верхней части окна нажмите кнопку Создать версию.

Протестируйте функцию обработки данных

Чтобы протестировать функцию:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.

  2. Выберите сервис Cloud Functions.

  3. В левой части окна выберите раздел Тестирование.

  4. В списке Тег версии выберите $latest — последнюю созданную функцию.

  5. В поле Входные данные вставьте данные:

    {
        "messages": [
            {
                "event_metadata": {
                    "event_id": "160d239876d9714800",
                    "event_type": "yandex.cloud.events.iot.IoTMessage",
                    "created_at": "2020-05-08T19:16:21.267616072Z",
                    "folder_id": "b112345678910"
                },
                "details": {
                    "registry_id": "are1234567890",
                    "device_id": "are0987654321",
                    "mqtt_topic": "$devices/are0987654321/events",
                    "payload": "ewogICAgICAgICAgICAiRGV2aWNlSWQiOiJhcmU1NzBrZTA1N29pcjg1bDlmciIsCiAgICAgICAgICAgICJUaW1lU3RhbXAiOiIyMDIwLTA2LTExVDExOjA3OjIwWiIsCiAgICAgICAgICAgICJWYWx1ZXMiOlsKICAgICAgICAgICAgICAgIHsiVHlwZSI6IkJvb2wiLCJOYW1lIjoiU2VydmljZSBkb29yIHNlbnNvciIsIlZhbHVlIjoiRmFsc2UifSwKICAgICAgICAgICAgICAgIHsiVHlwZSI6IkZsb2F0IiwiTmFtZSI6IlBvd2VyIFZvbHRhZ2UiLCJWYWx1ZSI6IjI1LjA2In0sCiAgICAgICAgICAgICAgICB7IlR5cGUiOiJGbG9hdCIsIk5hbWUiOiJUZW1wZXJhdHVyZSIsIlZhbHVlIjoiMTEuMjEifSwKICAgICAgICAgICAgICAgIHsiVHlwZSI6IkZsb2F0IiwiTmFtZSI6IkNhc2ggZHJhd2VyIGZ1bGxuZXNzIiwiVmFsdWUiOiI2Ny44OSJ9LAogICAgICAgICAgICAgICAgeyJJdGVtcyI6WwogICAgICAgICAgICAgICAgICAgIHsiVHlwZSI6IkZsb2F0IiwgIklkIjoiMSIsIk5hbWUiOiJJdGVtIDEiLCJGdWxsbmVzcyI6IjUwLjY1In0sCiAgICAgICAgICAgICAgICAgICAgeyJUeXBlIjoiRmxvYXQiLCAiSWQiOiIyIiwiTmFtZSI6Ikl0ZW0gMiIsIkZ1bGxuZXNzIjoiODAuOTcifSwKICAgICAgICAgICAgICAgICAgICB7IlR5cGUiOiJGbG9hdCIsICJJZCI6IjMiLCJOYW1lIjoiSXRlbSAzIiwiRnVsbG5lc3MiOiIzMC4zMyJ9LAogICAgICAgICAgICAgICAgICAgIHsiVHlwZSI6IkZsb2F0IiwgIklkIjoiNCIsIk5hbWUiOiJJdGVtIDQiLCJGdWxsbmVzcyI6IjE1LjE1In0KICAgICAgICAgICAgICAgIF19CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0="
                }
            }
        ]
    }
    
  6. Нажмите кнопку Запустить тест.

При успешном выполнении функции в поле Состояние функции отобразится статус Выполнена, а в поле Ответ функции результат:

{
"statusCode" : 200 ,
    "headers" : {
	    "Content-Type" : "text/plain"
    },
"isBase64Encoded" : false
}

Просмотрите результат обработки данных в Managed Service for PostgreSQL

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

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex Managed Service for PostgreSQL.
  3. Выберите раздел SQL.

В правой части окна отобразится таблица с результатами обработки данных.

Создайте триггер вызова функции обработки данных

Триггер вызовет функцию, когда в топике устройства появятся сообщения.

Чтобы создать триггер:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Cloud Functions.
  3. Выберите раздел Триггеры.
  4. Нажмите кнопку Создать триггер.
  5. В поле Имя введите имя триггера. Например, my-db-func-trigger.
  6. (опционально) В поле Описание добавьте дополнительную информацию о триггере.
  7. Выберите Тип: Yandex IoT Core.
  8. В блоке Настройки сообщений Yandex IoT Core введите ранее заданные параметры реестра и устройства:
    • Реестр: my-registry.

    • Устройство: Любое устройство.

    • MQTT-топик: $devices/#.

      Подробнее об MQTT-топиках в сервисе Yandex IoT Core.

  9. В блоке Настройки функции введите ранее заданные параметры функции:
    • Функция: my-database-function.
    • Тег версии функции: $latest.
    • Сервисный аккаунт: my-db-func-trigger-service-account.
  10. (опционально) Настройте параметры блоков Настройки повторных запросов и Настройки Dead Letter Queue. Они обеспечивают сохранность данных.
    • Настройки повторных запросов позволяют повторно вызывать функцию, если текущий вызов функции завершается с ошибкой.
    • Настройки Dead Letter Queue позволяют перенаправлять сообщения, которые не смогли обработать получатели в обычных очередях.
      В качестве DLQ очереди вы можете настроить стандартную очередь сообщений. Если вы еще не создавали очередь сообщений, создайте ее в сервисе Yandex Message Queue.
  11. Нажмите кнопку Создать триггер.

Просмотрите результат работы триггера в Managed Service for PostgreSQL

Через некоторое время после создания триггера вы можете проверить, как он работает.

Чтобы просмотреть результат работы триггера:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex Managed Service for PostgreSQL.
  3. Выберите раздел SQL.

В правой части окна отобразится обновленная таблица с большим количеством данных.

Настройте мониторинг в Yandex DataLens

Настройте подключение к Managed Service for PostgreSQL

Чтобы настроить подключение Yandex DataLens к Managed Service for PostgreSQL:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.

  2. Выберите сервис Yandex DataLens.

  3. Нажмите кнопку Создать подключение.

  4. Выберите коннектор PostgreSQL.

    При подключении к внешнему источнику данных (который не является ресурсом Yandex.Cloud) предоставьте доступ к источнику для диапазонов IP-адресов сервиса DataLens.

  5. Задайте имя подключения: MyPGConnection.

  6. Выберите Подключение: Выбрать в облаке.

  7. В списке Кластер выберите my-pg-database.

  8. В списке Имя хоста выберите хост, который вы создали в сервисе Yandex Managed Service for PostgreSQL.

  9. В поле Порт введите 6432.

  10. В списке Имя базы данных выберите db1.

  11. В списке Имя пользователя выберите user1.

  12. В поле Пароль введите пароль, который вы задали для доступа к кластеру в сервисе Yandex Managed Service for PostgreSQL.

  13. Нажмите кнопку Создать. Подключение появится в списке.

Создайте датасет

Чтобы создать датасет:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex DataLens.
  3. Нажмите кнопку Создать датасет.
  4. В левой части экрана нажмите Добавить.
  5. Выберите подключение MyPGConnection.
  6. В левой части окна выберите таблицы public.iot_events и public.iot_position, перетащите их вправо.
  7. Нажмите кнопку Сохранить.
  8. В открывшемся окне задайте имя датасета My-pg-dataset и нажмите Создать.

Датасет появится в списке.

Создайте чарт по показателям температуры и напряжения сети

Чтобы создать чарт по показателям температуры и напряжения сети:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex DataLens.
  3. Нажмите кнопку Создать чарт.
  4. В разделе Датасет выберите датасет My-pg-dataset, который вы создали ранее.
  5. Выберите тип чарта Линейная диаграмма.
  6. Из блока Измерения в левой части окна перетащите измерения в блок Линейная диаграмма:
    • event_datetime в секцию X;

      В нижней части графика по оси X отобразится временная шкала.

    • temperature и power_voltage в секцию Y.

      По оси Y в виде графика отобразятся значения температуры и напряжения сети.

  7. Нажмите кнопку Сохранить.
  8. В открывшемся окне задайте имя чарта или используйте сгенерированное имя My-pg-dataset — Линейная диаграмма и нажмите Сохранить.

Создайте чарт с картой

Чтобы создать чарт с картой:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex DataLens.
  3. В левой части окна выберите раздел Датасеты.
  4. В списке выберите датасет My-pg-dataset.
  5. Выберите вкладку Поля.
  6. В правой части окна нажмите кнопку Добавить поле.
  7. В открывшемся окне в поле Название поля введите Position.
  8. В поле Формула вставьте GEOPOINT([latitude],[longitude]).
  9. Нажмите кнопку Создать.
  10. Нажмите кнопку Сохранить.
  11. В правом верхнем углу нажмите кнопку Создать чарт.
  12. Выберите тип чарта Карта.
  13. Из блока Измерения в левой части окна перетащите измерения в блок Карта:
    • Position в секцию Геоточки;

    • item1_fullness, item1_fullness, item1_fullness, item1_fullness, cash_drawer и coin_drawer в секцию Тултипы.

      В правой части окна отобразится масштабируемая карта, на которой вендинговые автоматы отмечены точками на карте, а тултипы — строками легенды.

  14. Нажмите кнопку Сохранить.
  15. В открывшемся окне задайте имя чарта или используйте сгенерированное имя My-pg-dataset — Карта и нажмите Сохранить.

Создайте дашборд

Чтобы создать дашборд:

  1. В консоли управления выберите каталог, в котором вы выполняете сценарий.
  2. Выберите сервис Yandex DataLens.
  3. Нажмите кнопку Создать дашборд.
  4. В открывшемся окне введите название дашборда MyDash.
  5. Добавьте на дашборд чарты My-pg-dataset — Карта и My-pg-dataset — Линейная диаграмма, которые вы создали ранее:
    1. В верхней части окна в раскрывающемся списке Добавить выберите Чарт.

    2. В раскрывающемся списке Чарт выберите чарт My-pg-dataset — Карта.

      Имя чарта подставится в поле Название.

    3. (опционально) В поле Описание введите описание чарта.

    4. Нажмите кнопку Добавить.

    5. Повторите действия — добавьте чарт My-pg-dataset — Линейная диаграмма.

  6. Настройте селектор:
    1. В верхней части окна в раскрывающемся списке Добавить выберите Селектор.
    2. В поле Название введите Устройство.
    3. В списке Датасет выберите My-pg-dataset.
    4. В списке Поле выберите device_id.
    5. В списке Значение по умолчанию выберите идентификатор устройства, которое вы создали в сервисе Yandex IoT Core.
    6. Нажмите кнопку Добавить
  7. Настройте связи:
    1. В верхней части окна нажмите кнопку Связи.

    2. В верхней части открывшегося окна в списке выберите чарт My-pg-dataset — Точечная карта.

    3. В раскрывающемся списке Вх.связь выберите Игнор.

      Для карты параметр Связи не действует.

    4. Нажмите кнопку Сохранить.

    5. В верхней части окна в списке выберите чарт My-pg-dataset — Линейная диаграмма.

    6. В раскрывающемся списке Вх.связь выберите Вх.связь.

    7. Нажмите кнопку Сохранить.

  8. Нажмите кнопку Сохранить.

Подробнее о дашбордах сервиса Yandex DataLens

В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте необходимые ресурсы Yandex IoT Core
  • Создайте реестр и настройте авторизацию по логину и паролю
  • Создайте устройство и настройте авторизацию по логину и паролю
  • Создайте эмулятор устройств в Cloud Functions
  • Создайте функцию эмуляции отправки данных с устройства
  • Протестируйте функцию эмуляции
  • Создайте триггер вызова функции один раз в минуту
  • Создайте кластер в Yandex Managed Service for PostgreSQL
  • Создайте функцию обработки данных в Yandex Cloud Functions
  • Создайте функцию обработки принимаемых данных
  • Протестируйте функцию обработки данных
  • Просмотрите результат обработки данных в Managed Service for PostgreSQL
  • Создайте триггер вызова функции обработки данных
  • Просмотрите результат работы триггера в Managed Service for PostgreSQL
  • Настройте мониторинг в Yandex DataLens
  • Настройте подключение к Managed Service for PostgreSQL
  • Создайте датасет
  • Создайте чарт по показателям температуры и напряжения сети
  • Создайте чарт с картой
  • Создайте дашборд
Language / Region
Вакансии
Политика конфиденциальности
Условия использования
Брендбук
© 2021 ООО «Яндекс.Облако»