Удаленное выполнение через Puzzle Worker
Описание
Puzzle Worker - инструмент Puzzle RPA для удаленного выполнения RPA-действий на другой машине. Воркер запускается на удаленном компьютере и принимает команды по WebSocket, а робот отправляет в него вызовы поддерживаемых функций из блоков Puzzle RPA.
Такой режим используется, когда необходимо выполнять действия не на компьютере разработчика, а на отдельной рабочей станции, сервере или машине с RDP-сеансом. Например, можно запускать блоки desktop-автоматизации, работать с файлами удаленной машины, открывать приложения и получать объекты элементов интерфейса.
Схема работы
Локальная машина
- Студия Puzzle RPA доходит до удаленного действия.
- Управление передается в клиент Puzzle Worker.
- Клиент отправляет команду по WebSocket:
ws://<host>:9002wss://<host>:9002
Удаленная машина
- Puzzle Worker принимает команду.
- Выполняется функция из блоков Puzzle RPA.
- Происходит взаимодействие с приложениями, файлами и интерфейсом удаленной машины.
- Результат выполнения возвращается в студию Puzzle RPA.
Принцип работы
Удаленное выполнение состоит из двух частей:
- Puzzle Worker - работник на удаленной машине. Он слушает порт, принимает команды и выполняет функции из блоков Puzzle RPA;
- Клиент Puzzle Worker - часть робота, которая подключается к работнику и передает ему команды.
По умолчанию Puzzle Worker использует следующие параметры:
| Параметр | Значение |
|---|---|
| Протокол без SSL | ws:// |
| Протокол с SSL | wss:// |
| Порт | 9002 |
| Адрес для запуска на удаленной машине | 0.0.0.0 |
Подготовка удаленной машины
Перед запуском робота необходимо подготовить компьютер, на котором будут выполняться удаленные действия.
- Установить Puzzle Worker на удаленную машину.
- После установки Puzzle Worker будет автоматически запущен на указанном при установке порту.
- Убедиться, что на машине установлены зависимости, необходимые для используемых блоков Puzzle RPA.
- Выдать разрешение на доступ к порту Puzzle Worker (Брендмауэр Windows должен разрешать доступ к Python\Python311\pythonw.exe).
Примеры команд для выдачи разрешения на доступ Puzzle Worker:
netsh advfirewall firewall add rule name="Python311 pythonw IN" dir=in action=allow program="Путь установки Python\Local\Programs\Python\Python311\pythonw.exe" enable=yes profile=anynetsh advfirewall firewall add rule name="Python311 python IN" dir=in action=allow program="Путь установки Python\Local\Programs\Python\Python311\python.exe" enable=yes profile=anynetsh advfirewall firewall add rule name="Python311 pythonw OUT" dir=out action=allow program="Путь установки Python\Local\Programs\Python\Python311\pythonw.exe" enable=yes profile=anynetsh advfirewall firewall add rule name="Python311 python OUT" dir=out action=allow program="Путь установки Python\Local\Programs\Python\Python311\python.exe" enable=yes profile=anyЗапуск Puzzle Worker
Для ручного запуска Puzzle Worker используется команда:
Запуск выполняется из папки puzzle-worker:
start.batПосле запуска воркер начинает принимать подключения по адресу:
ws://<IP-адрес удаленной машины>:9002
Работа с файлами удаленной машины
При удаленном выполнении пути к файлам относятся к удаленной машине. Если в блок передан путь C:\remote\file.txt, то файл будет искаться на компьютере, где запущен Puzzle Worker.
Получение объекта элемента интерфейса через мастер UI
Для блоков desktop-автоматизации часто требуется объекты элементов интерфейса. Объекты элементов интерфейса можно получить с помощью мастер UI.
- В настройках студии Puzzle RPA в разделе “Удаленное выполнение” указать параметры для подключения к Puzzle Worker.
- IP-адрес удаленной машины
- Порт Puzzle Worker
- Запустить мастер UI с помощью кнопки на блоках десктоп-автоматизации.
- Установить чекбокс “Удаленный выбор элемента” в мастер UI.
- Навести курсор на нужный элемент в приложении.
- Нажать горячую клавишу выбора элемента.
- Выбранный элемент будет отображен в мастер UI.
- Подтвердить выбор элемента.
По умолчанию инспектор использует:
| Действие | Горячая клавиша |
|---|---|
| Включить отслеживание элемента | Ctrl+Shift+Q |
| Выбрать элемент | Ctrl+X |
| Завершить выбор | Shift |
Проверка подключения
Для проверки подключения можно выполнить тест:
from puzzle_logger.puzzle_worker_client import get_puzzle_worker_client
client = get_puzzle_worker_client("192.168.7.181", 9002)client.connect()print("Подключение успешно")client.disconnect()Если подключение не установлено, требуется проверить:
- запущен ли Puzzle Worker на удаленной машине;
- правильно ли указан IP-адрес;
- открыт ли порт
9002; - не блокирует ли подключение файрвол;
- совпадает ли режим SSL на клиенте и воркере.
Логи Puzzle Worker
Puzzle Worker записывает логи всех действий в папку logs. По умолчанию файл лога создается с датой в имени:
logs/worker_startup.loglogs/YYYY-MM-DD.logЛоги содержат информацию о:
- факт подключения клиента;
- вызов функции;
- ошибки выполнения;
- проблемы с загрузкой модулей;
- отключение клиента.
Типовые ошибки
Не удалось подключиться к Puzzle Worker
Требуется проверить, что Puzzle Worker запущен, IP-адрес и порт указаны верно, а подключение не блокируется файрволом.
Рекомендации
- Запускать Puzzle Worker от обычного пользователя, если для сценария не требуются повышенные права.
- Не открывать порт Puzzle Worker в интернет напрямую.
- Для рабочих окружений используйте SSL/TLS и ограничение доступа по IP.
- Проверять, что файлы и автоматизируемые приложения доступны на удаленной машине.