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
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

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

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

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

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

Исходный код руководства доступен в репозитории на GitHub.

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

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

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

Перед началом работы

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

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

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

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

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

В стоимость поддержки описываемого решения входят:

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

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

  • Создайте сервисный аккаунт my-emulator-function-service-account для отправки данных. Назначьте ему роли functions.functionInvoker, iot.devices.writer и viewer.

  • Создайте сервисный аккаунт my-db-function-service-account для обработки данных. Назначьте ему роли functions.functionInvoker и editor.

  • Создайте облачную сеть и хотя бы одну подсеть в зоне доступности ru-central1-a, ru-central1-b или ru-central1-d.

  • Создайте группу безопасности my-pg-sg и добавьте правило для входящего трафика:

    • Диапазон портов — 6432.
    • Протокол — TCP.
    • Источник — CIDR.
    • CIDR блоки — 0.0.0.0/0.

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

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

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

  2. В списке сервисов выберите Managed Service for PostgreSQL.

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

  4. Укажите имя кластера, например my-pg-database.

  5. В списке Окружение выберите PRODUCTION.

  6. В списке Версия выберите 15.

  7. В блоке Класс хоста укажите:

    • Платформа — Intel Ice Lake.
    • Тип — standard.
    • Класс — s3-c2-m8 (2 vCPU, 8 ГБ).
  8. В блоке Размер хранилища:

    • Выберите network-hdd.
    • Укажите размер 10 ГБ.
  9. В блоке База данных укажите:

    • Имя БД — db1.

    • Имя пользователя — user1.

    • Пароль — задайте пароль доступа к БД.

      Примечание

      Сохраните пароль, он понадобится вам для аутентификации.

    • Локаль сортировки (LC_COLLATE) — C.

    • Локаль набора символов (LC_CTYPE) — C.

  10. В блоке Сетевые настройки:

    1. Выберите облачную сеть, в которой создана группа безопасности my-pg-sg.
    2. Выберите группу безопасности my-pg-sg.
  11. В блоке Хосты:

    1. Оставьте один хост.
    2. Нажмите значок .
    3. В открывшемся окне включите опцию Публичный доступ и нажмите кнопку Сохранить.
  12. В блоке Дополнительные настройки включите опции Доступ из DataLens и Доступ из консоли управления.

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

Создание кластера может занять несколько минут.

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

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

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

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

  2. В списке сервисов выберите IoT Core.

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

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

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

    Примечание

    Сохраните пароль, он понадобится вам для аутентификации.

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

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

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

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

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

  2. В списке сервисов выберите IoT Core.

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

  4. В меню слева выберите Устройства.

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

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

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

    Примечание

    Сохраните пароль, он понадобится вам для аутентификации.

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

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

    2. Заполните поля: введите алиас (например events) и тип топика после $devices/{id} (например, events).

      В результате вместо топика $devices/<идентификатор_устройства>/events вы сможете использовать алиас events.

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

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

  10. Аналогичным образом создайте устройства my-device-2 и my-device-3.

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

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

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

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

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

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

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

  3. Создайте функцию:

    1. Нажмите кнопку Создать функцию.
    2. В поле Имя введите имя функции. Например, my-device-emulator-function.
    3. Нажмите кнопку Создать.
  4. Создайте версию функции:

    1. В открывшемся окне Редактор выберите Node.js 18.

    2. Отключите опцию Добавить файлы с примерами кода.

    3. Нажмите кнопку Продолжить.

    4. В поле Способ выберите Редактор кода.

    5. Нажмите кнопку Создать файл:

      • Имя файла — device-emulator.js.
      • Содержимое файла — код функции с GitHub.
    6. Аналогичным образом создайте файл package.json со следующим содержимым:

      {
        "name": "my-app",
        "version": "1.0.0",
        "dependencies": {
          "yandex-cloud": "*"
        }
      }
      
    7. В поле Точка входа укажите device-emulator.handler.

    8. В блоке Параметры укажите:

      • Таймаут — 10.

      • Память — 128 МБ.

      • Сервисный аккаунт — my-emulator-function-service-account.

      • Переменные окружения:

        Ключ Описание Значение
        CASH_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
    9. Нажмите кнопку Сохранить изменения.

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

  1. (Опционально) Чтобы получать подробную информацию с датчиков, подпишите реестр на топик устройства Yandex IoT Core.

    CLI

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

    По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

    yc iot mqtt subscribe \
      --username <идентификатор_реестра> \
      --password <пароль_реестра> \
      --topic '$devices/<идентификатор_устройства>/events/#' \
      --qos 1
    

    Где:

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

    Выполнение команды не должно прерываться до завершения тестирования функции.

    Подробнее о команде yc iot mqtt subscribe читайте в справочнике CLI.

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

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

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

    3. Выберите функцию my-device-emulator-function.

    4. В меню слева выберите Тестирование.

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

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

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

      {
        "statusCode" : 200
      }
      

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

      {
        "DeviceId":"areulpu7dnou********",
        "TimeStamp":"2024-06-19T08:29:14Z",
        "Values":[
            {"Type":"Bool","Name":"Service door sensor","Value":"False"},
            {"Type":"Float","Name":"Power Voltage","Value":"24.91"},
            {"Type":"Float","Name":"Temperature","Value":"10.51"},
            {"Type":"Float","Name":"Cash 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"}
            ]}
            ]
        }
      

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

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

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

  3. На панели слева выберите Триггеры.

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

  5. В поле Имя введите имя триггера. Например, my-emulator-function-trigger.

  6. В поле Тип выберите Таймер.

  7. В поле Cron-выражение выберите Каждую минуту.

  8. В блоке Настройки функции укажите параметры функции:

    • Функция — my-device-emulator-function.
    • Тег версии функции — $latest.
    • Сервисный аккаунт — my-emulator-function-service-account.
  9. (Опционально) В блоках Настройки повторных запросов и Настройки Dead Letter Queue задайте параметры, которые позволят не потерять данные в случае сбоя:

    • Настройки повторных запросов позволяют повторно вызывать функцию, если текущий вызов функции завершается с ошибкой.

    • Настройки Dead Letter Queue позволяют перенаправлять сообщения, которые триггер отправляет в функцию.

      В качестве очереди Dead Letter Queue вы можете использовать стандартную очередь сообщений. Если у вас нет очереди сообщений, создайте ее в сервисе Yandex Message Queue.

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

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

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

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

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

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

  3. На панели слева выберите Функции.

  4. Создайте функцию:

    1. Нажмите кнопку Создать функцию.
    2. В поле Имя введите имя функции. Например, my-db-function.
    3. Нажмите кнопку Создать.
  5. Создайте версию функции:

    1. В открывшемся окне Редактор выберите Python 3.12.

    2. Отключите опцию Добавить файлы с примерами кода.

    3. Нажмите кнопку Продолжить.

    4. В поле Способ выберите Редактор кода.

    5. Нажмите кнопку Создать файл:

      • Имя файла — myfunction.py.
      • Содержимое файла — код функции с GitHub.
    6. В поле Точка входа укажите myfunction.msgHandler.

    7. В блоке Параметры укажите:

      • Таймаут — 10.

      • Память — 128 МБ.

      • Сервисный аккаунт — my-db-function-service-account.

      • Переменные окружения:

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

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

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

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

  3. Выберите функцию my-db-function.

  4. В меню слева выберите Тестирование.

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

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

    {
      "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="
        }
      }]
    }
    
  7. Нажмите кнопку Запустить тест.

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

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

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

Консоль управления
  1. В консоли управления выберите каталог, в котором вы выполняете руководство.
  2. В списке сервисов выберите Managed Service for PostgreSQL.
  3. Выберите кластер my-pg-database.
  4. В меню слева выберите SQL.
  5. В поле Пароль введите пароль, который вы задали для доступа к БД, и нажмите кнопку Подключиться.
  6. Выберите папку public.
  7. Посмотрите результаты обработки данных в таблицах iot_events и iot_position.

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

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

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

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

  3. На панели слева выберите Триггеры.

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

  5. В поле Имя введите имя триггера. Например, my-db-func-trigger.

  6. В поле Тип выберите IoT Core (устройство).

  7. В блоке Настройки сообщений IoT Core укажите параметры реестра и устройства:

    • Реестр — my-registry.
    • Устройство — Любое устройство.
    • MQTT-топик — $devices/#.
  8. В блоке Настройки функции укажите параметры функции:

    • Функция — my-db-function.
    • Тег версии функции — $latest.
    • Сервисный аккаунт — my-db-function-service-account.
  9. (Опционально) В блоках Настройки повторных запросов и Настройки Dead Letter Queue задайте параметры, которые позволят не потерять данные в случае сбоя:

    • Настройки повторных запросов позволяют повторно вызывать функцию, если текущий вызов функции завершается с ошибкой.

    • Настройки Dead Letter Queue позволяют перенаправлять сообщения, которые триггер отправляет в функцию.

      В качестве очереди Dead Letter Queue вы можете использовать стандартную очередь сообщений. Если у вас нет очереди сообщений, создайте ее в сервисе Yandex Message Queue.

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

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

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

Консоль управления
  1. В консоли управления выберите каталог, в котором вы выполняете руководство.
  2. В списке сервисов выберите Managed Service for PostgreSQL.
  3. Выберите кластер my-pg-database.
  4. В меню слева выберите SQL.
  5. В поле Пароль укажите пароль, который вы задали для доступа к БД, и нажмите кнопку Подключиться.
  6. Выберите папку public.
  7. Посмотрите изменения в таблице iot_events.

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

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

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

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

  2. В списке сервисов выберите DataLens.

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

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

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

  5. Выберите облако и каталог.

  6. Выберите кластер my-pg-database и хост.

  7. В поле Порт укажите 6432.

  8. Выберите базу данных db1 и пользователя user1.

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

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

  11. В открывшемся окне укажите имя подключения MyPGConnection и нажмите кнопку Создать.

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

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

  2. В списке сервисов выберите DataLens.

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

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

  5. Выберите подключение MyPGConnection.

  6. В меню слева выберите таблицы public.iot_events и public.iot_position, перетащите их вправо.

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

  8. В открывшемся окне укажите имя датасета My-pg-dataset и нажмите Создать.

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

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

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

  2. В списке сервисов выберите DataLens.

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

  4. На панели слева нажмите кнопку Выберите датасет и выберите датасет My-pg-dataset, который вы создали ранее.

  5. Выберите тип чарта Линейная диаграмма.

  6. Из блока Измерения в меню слева перетащите измерения в блок Линейная диаграмма:

    • event_datetime в секцию X.

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

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

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

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

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

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

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

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

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

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

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

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

  2. В списке сервисов выберите DataLens.

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

  4. Добавьте на дашборд чарты My-pg-dataset — Карта и My-pg-dataset — Линейная диаграмма, которые вы создали ранее:

    1. На нижней панели нажмите Чарт.
    2. В открывшемся окне в поле Чарт нажмите кнопку Выбрать и выберите My-pg-dataset — Карта.
    3. Нажмите кнопку Добавить.
    4. Повторите действия — добавьте чарт My-pg-dataset — Линейная диаграмма.
  5. Настройте селектор:

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

    1. Справа вверху нажмите кнопку Связи.

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

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

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

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

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

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

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

  8. В открывшемся окне введите название дашборда MyDash.

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

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

Как удалить созданные ресурсы

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

  1. Удалите устройства в сервисе Yandex IoT Core.
  2. Удалите реестр в сервисе Yandex IoT Core.
  3. Удалите триггеры для вызова функций в сервисе Cloud Functions.
  4. Удалите функции в сервисе Cloud Functions.
  5. Удалите кластер в сервисе Managed Service for PostgreSQL.
  6. Удалите статический публичный IP-адрес, если вы его зарезервировали.

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

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