pg_anon stateless REST API service
Этот сервис предназначен для интеграции pg_anon в любую систему через HTTP-запросы. Он работает как обертка (wrapper) для CLI-версии pg_anon. REST API-вызовы подготавливают параметры командной строки и запускают CLI-версию pg_anon.
Сервис не сохраняет состояние и не хранит данные в базе данных, что позволяет легко масштабировать его без дополнительной настройки. Однако это означает, что система, интегрирующая pg_anon, должна самостоятельно реализовать хранилища для словарей, дампов и ресторов.
Сервис не подходит для полностью автономной работы.
Предварительные условия
Этот инструмент поддерживает Python версии 3.11 и выше. Исходный код размещен в репозитории.
Все дампы будут сохраняться в директории
/путь_до_pg_anon/output. При масштабировании REST API сервиса необходимо создать символическую ссылку (symlink) для этой директории на общем диске. Это необходимо, потому что операции восстановления также обращаются к дампам по пути/путь_до_pg_anon/output.
Инструкция по установке
Настройте виртуальное окружение и установите зависимости pg_anon:
Установите Python3:
для Ubuntu
sudo apt-get install python3.11
для Redhat/Centos:
sudo yum install python311
Клонируйте репозиторий:
git clone https://github.com/TantorLabs/pg_anon.git
Перейдите в каталог проекта:
cd pg_anon
Настройте виртуальную среду:
Установите виртуальную среду:
python3 -m venv venv
Активируйте виртуальную среду:
source venv/bin/activate
Установите зависимости:
pip install -r requirements.txt
Перейдите в директорию сервиса:
cd rest_api
Установите зависимости REST API сервиса:
pip install -r requirements.txt
Настройка конфигурации
Для работы с несколькими версиями PostgreSQL создайте файл конфигурации /path_to_pg_anon/config.yml по инструкции. Этот конфигурационный файл будет использоваться автоматически.
Использование
Запустите сервис:
python -m uvicorn rest_api.api:app