Перейти к содержимому

Удаленное выполнение через Puzzle Worker

Описание

Puzzle Worker - инструмент Puzzle RPA для удаленного выполнения RPA-действий на другой машине. Воркер запускается на удаленном компьютере и принимает команды по WebSocket, а робот отправляет в него вызовы поддерживаемых функций из блоков Puzzle RPA.

Такой режим используется, когда необходимо выполнять действия не на компьютере разработчика, а на отдельной рабочей станции, сервере или машине с RDP-сеансом. Например, можно запускать блоки desktop-автоматизации, работать с файлами удаленной машины, открывать приложения и получать объекты элементов интерфейса.

Схема работы

Локальная машина

  1. Студия Puzzle RPA доходит до удаленного действия.
  2. Управление передается в клиент Puzzle Worker.
  3. Клиент отправляет команду по WebSocket:
    • ws://<host>:9002
    • wss://<host>:9002

Удаленная машина

  1. Puzzle Worker принимает команду.
  2. Выполняется функция из блоков Puzzle RPA.
  3. Происходит взаимодействие с приложениями, файлами и интерфейсом удаленной машины.
  4. Результат выполнения возвращается в студию Puzzle RPA.

Принцип работы

Удаленное выполнение состоит из двух частей:

  • Puzzle Worker - работник на удаленной машине. Он слушает порт, принимает команды и выполняет функции из блоков Puzzle RPA;
  • Клиент Puzzle Worker - часть робота, которая подключается к работнику и передает ему команды.

По умолчанию Puzzle Worker использует следующие параметры:

ПараметрЗначение
Протокол без SSLws://
Протокол с SSLwss://
Порт9002
Адрес для запуска на удаленной машине0.0.0.0

Подготовка удаленной машины

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

  1. Установить Puzzle Worker на удаленную машину.
    • После установки Puzzle Worker будет автоматически запущен на указанном при установке порту.
  2. Убедиться, что на машине установлены зависимости, необходимые для используемых блоков Puzzle RPA. image_1
  3. Выдать разрешение на доступ к порту Puzzle Worker (Брендмауэр Windows должен разрешать доступ к Python\Python311\pythonw.exe). image_2

Примеры команд для выдачи разрешения на доступ 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=any
netsh advfirewall firewall add rule name="Python311 python IN" dir=in action=allow program="Путь установки Python\Local\Programs\Python\Python311\python.exe" enable=yes profile=any
netsh advfirewall firewall add rule name="Python311 pythonw OUT" dir=out action=allow program="Путь установки Python\Local\Programs\Python\Python311\pythonw.exe" enable=yes profile=any
netsh 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
image_3

Работа с файлами удаленной машины

При удаленном выполнении пути к файлам относятся к удаленной машине. Если в блок передан путь C:\remote\file.txt, то файл будет искаться на компьютере, где запущен Puzzle Worker.


Получение объекта элемента интерфейса через мастер UI

Для блоков desktop-автоматизации часто требуется объекты элементов интерфейса. Объекты элементов интерфейса можно получить с помощью мастер UI.

  1. В настройках студии Puzzle RPA в разделе “Удаленное выполнение” указать параметры для подключения к Puzzle Worker.
    • IP-адрес удаленной машины
    • Порт Puzzle Worker
    image_4
  2. Запустить мастер UI с помощью кнопки на блоках десктоп-автоматизации.
  3. Установить чекбокс “Удаленный выбор элемента” в мастер UI.
  4. Навести курсор на нужный элемент в приложении.
  5. Нажать горячую клавишу выбора элемента.
  6. Выбранный элемент будет отображен в мастер UI.
  7. Подтвердить выбор элемента.

По умолчанию инспектор использует:

ДействиеГорячая клавиша
Включить отслеживание элементаCtrl+Shift+Q
Выбрать элементCtrl+X
Завершить выборShift
image_5

Проверка подключения

Для проверки подключения можно выполнить тест:

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.log
logs/YYYY-MM-DD.log

Логи содержат информацию о:

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

Типовые ошибки

Не удалось подключиться к Puzzle Worker

Требуется проверить, что Puzzle Worker запущен, IP-адрес и порт указаны верно, а подключение не блокируется файрволом.


Рекомендации

  • Запускать Puzzle Worker от обычного пользователя, если для сценария не требуются повышенные права.
  • Не открывать порт Puzzle Worker в интернет напрямую.
  • Для рабочих окружений используйте SSL/TLS и ограничение доступа по IP.
  • Проверять, что файлы и автоматизируемые приложения доступны на удаленной машине.