Skip to Content

Интеграция с S3-хранилищем

Primo RPA Orchestrator позволяет хранить файлы в файловой системе или S3-совместимом объектном хранилище. Для некоторых типов файлов также предусмотрено хранение в базе данных.

В S3 могут размещаться:

  • архивы дистрибутивов роботов и агентов – служба WebApi;
  • архивы RPA-проектов – служба WebApi;
  • скриншоты, передаваемые роботами вместе с журналами выполнения, – служба RobotLogs;
  • NuGet-пакеты – служба NuGet.

Начиная с Orchestrator 1.26.9, для WebApi и RobotLogs добавлена поддержка Ceph наряду с MinIO. Также появилась возможность хранить архивы RPA-проектов в S3 вместо базы данных. Настройка S3 необязательна: используемый способ хранения определяется конфигурацией каждой службы.

Компонент и тип файловПоддерживаемые варианты хранения
WebApi – дистрибутивы роботов и агентовФайловая система; S3 (MinIO или Ceph)
WebApi – архивы RPA-проектовФайловая система; база данных; S3 (MinIO или Ceph)
RobotLogs – скриншотыФайловая система; S3 (MinIO или Ceph)
NuGet – пакетыФайловая система; MinIO

Перед началом настройки

  1. Подготовьте доступное из сети Оркестратора S3-совместимое хранилище и необходимые бакеты.
  2. Получите у администратора хранилища адрес подключения, ключ доступа (AccessKey) и секретный ключ (SecretKey) с правами на требуемые операции.
  3. Определите, какие файлы будут храниться в S3. Настройки WebApi, RobotLogs и NuGet задаются раздельно.
  4. Создайте резервную копию действующей конфигурации и данных перед изменением способа хранения.

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

Начиная с Orchestrator 1.26.7.20, сервис MinIO исключён из стандартной Docker-поставки. При этом поддержка подключения к отдельно развернутому MinIO сохраняется. В закрытом контуре заранее обеспечьте сетевую доступность выбранного S3-хранилища.

Настройка WebApi

В конфигурации WebApi секция FileStore определяет способ хранения файлов, в том числе архивов дистрибутивов роботов и агентов.

Выбор хранилища в FileStore

ПараметрЗначенияЗначение по умолчанию
FileStore.Type0 – файловая система; 1 – S30
FileStore.S30 – MinIO; 1 – Ceph0

Пример настройки WebApi для Ceph:

{ "FileStore": { "Type": 1, "S3": 1, "Ceph": { "Endpoint": "https://ceph.example.local:8080", "AccessKey": "YOUR_ACCESS_KEY", "SecretKey": "YOUR_ENCRYPTED_SECRET_KEY", "ForcePathStyle": true, "IgnoreValidateCert": false } } }

Пример настройки WebApi для MinIO:

{ "FileStore": { "Type": 1, "S3": 0, "Minio": { "Endpoint": "minio.example.local:9000", "AccessKey": "YOUR_ACCESS_KEY", "SecretKey": "YOUR_ENCRYPTED_SECRET_KEY", "SSL": true, "Bucket": "common-bucket", "Folder": "webapi", "IgnoreValidateCert": false } } }

Хранение архивов RPA-проектов

Начиная с Orchestrator 1.26.9, хранилище архивов RPA-проектов можно выбирать отдельно. За это отвечает параметр StoreType в конфигурации хранения архивов проектов WebApi.

StoreTypeХранилище
0Файловая система
1База данных (по умолчанию)
2S3

Для хранения новых загружаемых архивов проектов в S3 используется значение:

"StoreType": 2
⚠️

При обновлении до 1.26.9 прежний параметр DbStore больше не учитывается. Удалите его или замените на StoreType в соответствующем блоке конфигурации. Автоматическая миграция ранее сохранённых архивов проектов из базы данных в S3 не предусмотрена. Перед сменой хранилища обеспечьте доступность исторических архивов и согласуйте способ их переноса.

Хранение файлов Kerberos keytab

В WebApi используется параметр S3KerberosKeytabs, который до версии 1.26.9 назывался MinioKerberosKeytab.

Если FileStore.Type равен 1 (S3) и словарь S3KerberosKeytabs заполнен, указанные keytab-файлы также хранятся в S3.

Пример фрагмента внутри секции FileStore:

"S3KerberosKeytabs": { "example.local": { "BucketName": "keytab", "ObjectName": "krb5.keytab" } }

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

Настройка RobotLogs

В службе RobotLogs за хранение скриншотов, передаваемых роботами вместе с журналами выполнения, отвечает секция ScreenFileUpload.

ПараметрЗначенияЗначение по умолчанию
ScreenFileUpload.StoreType0 – файловая система; 1 – S30
ScreenFileUpload.S30 – MinIO; 1 – Ceph0

Пример настройки хранения скриншотов в Ceph:

{ "ScreenFileUpload": { "StoreType": 1, "S3": 1, "Ceph": { "Endpoint": "https://ceph.example.local:8080", "AccessKey": "YOUR_ACCESS_KEY", "SecretKey": "YOUR_ENCRYPTED_SECRET_KEY", "ForcePathStyle": true, "IgnoreValidateCert": false } } }

Пример настройки хранения скриншотов в MinIO:

{ "ScreenFileUpload": { "StoreType": 1, "S3": 0, "Minio": { "Endpoint": "minio.example.local:9000", "AccessKey": "YOUR_ACCESS_KEY", "SecretKey": "YOUR_ENCRYPTED_SECRET_KEY", "SSL": true, "IgnoreValidateCert": false } } }

В существующей секции ScreenFileUpload могут быть и другие настройки: MaxBatch, ScreenFilePath, AgentTimeOut и т. д. Не удаляйте их при добавлении параметров S3.

Параметры подключения к MinIO и Ceph

ПараметрНазначение
EndpointАдрес S3-сервера. Для Ceph обязательно указывайте полный URL с http:// или https://.
AccessKeyИдентификатор ключа доступа к S3.
SecretKeyСекретный ключ доступа. В конфигурации WebApi и RobotLogs должен быть зашифрован.
Minio.SSLИспользовать HTTPS при подключении к MinIO: true или false.
Ceph.ForcePathStyleИспользовать адресацию объектов через путь. Для Ceph значение по умолчанию – true; параметр можно не указывать.
IgnoreValidateCertОтключить проверку SSL-сертификата при значении true. По умолчанию – false. Доступен в секциях MinIO и Ceph.
Minio.BucketИмя бакета, если параметр предусмотрен конфигурацией службы.
Minio.FolderДиректория (префикс) внутри бакета, если параметр предусмотрен конфигурацией службы.
⚠️

Для рабочей среды используйте HTTPS с действительным доверенным сертификатом. Значение IgnoreValidateCert: true отключает проверку сертификата и допустимо только в контролируемом тестовом окружении.

Настройка NuGet

Хранилище NuGet-пакетов настраивается отдельно от WebApi и RobotLogs – в секции Storage службы NuGet.

Storage.TypeХранилище
"Minio"S3-совместимое хранилище MinIO
"FileSystem"Файловая система

Использование MinIO

{ "Storage": { "Type": "Minio" }, "Minio": { "Endpoint": "minio.example.local:9000", "AccessKey": "YOUR_ACCESS_KEY", "SecretKey": "YOUR_ENCRYPTED_SECRET_KEY", "Bucket": "common-bucket", "Folder": "nuget", "SSL": true } }
ПараметрНазначениеЗначение по умолчанию
Minio.EndpointАдрес MinIO–
Minio.AccessKeyКлюч доступа–
Minio.SecretKeyЗашифрованный секретный ключ–
Minio.BucketБакет для хранения пакетовnuget
Minio.FolderДиректория внутри бакетаПустая строка (корень бакета)
Minio.SSLИспользование HTTPSfalse

Использование файловой системы

{ "Storage": { "Type": "FileSystem" }, "FileSystem": { "Path": "C:\\OrchNuget" } }

В Windows примером каталога является C:\OrchNuget, в Linux – /opt/Primo. Если FileSystem.Path отсутствует или пуст, используется каталог по умолчанию для соответствующей ОС.

Общий бакет для WebApi и NuGet

WebApi и NuGet могут использовать один бакет MinIO, записывая файлы в разные директории. Такая возможность поддерживается начиная с Orchestrator 1.25.9.

Например, для общего бакета common-bucket настройте:

WebApi – внутри секции FileStore.Minio:

{ "Bucket": "common-bucket", "Folder": "webapi" }

NuGet – внутри секции Minio:

{ "Bucket": "common-bucket", "Folder": "nuget" }

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

В конфигурации MinIO для NuGet пустое значение Folder ("") и "/" означают корневую директорию бакета.

Особенности обновления до Orchestrator 1.26.9

При обновлении конфигурации проверьте следующие изменения:

РанееНачиная с 1.26.9Что сделать
DbStore – признак хранения архивов проектов в БДStoreType со значениями 0 (файловая система), 1 (БД), 2 (S3)Удалить или заменить устаревший параметр, учитывая выбранный способ хранения
MinioKerberosKeytabS3KerberosKeytabsПереименовать параметр в конфигурации WebApi, если он используется
Хранение файлов WebApi и RobotLogs в файловой системе или MinIOДополнительно CephПри необходимости указать S3: 1 и настроить секцию Ceph
⚠️

Изменение типа хранилища не гарантирует переноса ранее сохранённых файлов. Для архивов RPA-проектов миграция исторических данных в S3 не реализована в рамках задачи 54922. Перед переключением проверьте, откуда будут доступны уже загруженные архивы, и сохраните резервную копию.

Проверка работоспособности

После изменения конфигурации перезапустите соответствующие службы, затем проверьте:

  1. WebApi: загрузите и скачайте архив дистрибутива робота или агента.
  2. WebApi: загрузите и скачайте новый архив RPA-проекта, убедитесь, что он попал в выбранное хранилище.
  3. RobotLogs: выполните процесс, создающий скриншот, и проверьте его доступность в журнале робота.
  4. NuGet: если используется MinIO, загрузите и получите тестовый пакет.
  5. Проверьте журналы служб на ошибки доступа, TLS и обращения к S3.

При изменении конфигурации продуктивной системы полезно дополнительно проверить работу с крупными архивами (например, около 500 МБ), если такой объём характерен для ваших процессов.

Возможные проблемы

ПризнакЧто проверить
Файл не загружается в MinIOEndpoint, значение SSL, сетевую доступность, бакет и права доступа.
Ошибка TLS/сертификатаСоответствие http/https, срок действия и доверие к сертификату.
Ошибка доступа к CephПолный URL в Ceph.Endpoint, AccessKey, зашифрованный SecretKey, ForcePathStyle и разрешения.
Новые архивы доступны, а старые нетНаличие исторических файлов в прежнем хранилище и выбранный StoreType; автоматического переноса нет.
Скриншоты не появляются в журналеНастройки ScreenFileUpload, доступность S3, журналы RobotLogs и процесс создания скриншота.

Для выбора способа хранения каждого типа файлов используйте настройки соответствующей службы. Параметры FileStore.Type, ScreenFileUpload.StoreType и StoreType для архивов проектов имеют разное назначение.