Введение
В этой статье описывается, как организовать обмен файлами между 1С и облаком Amazon S3, используя микросервисную архитектуру. Микросервис написан на Python и использует официальную библиотеку Amazon – boto3. Он запускается при старте обработки 1С, но может работать и как отдельный сервис на любом сервере, упакованном в Docker‑контейнер.
Архитектура решения
- 1С – клиент, который инициирует обмен файлов.
- Микросервис на Python – отвечает за взаимодействие с S3, реализует API для загрузки и скачивания.
- Docker – упрощает развертывание микросервиса на любой машине.
Как это работает
Обработка в 1С запускает микросервис при старте. Микросервис получает запросы от 1С (например, «загрузить файл» или «скачать файл») и использует boto3 для выполнения операций в бакете Amazon S3. Благодаря микросервисной модели 1С остаётся «тонким» клиентом, а тяжёлые операции выполняются в отдельном процессе.
Установка и настройка микросервиса
1. Установить Python и boto3
pip install boto3
2. Настроить учётные данные AWS
Микросервис использует стандартный механизм аутентификации AWS. Создайте файл ~/.aws/credentials со следующим содержимым:
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
3. Запустить микросервис
Внутри обработки 1С микросервис запускается как отдельный процесс. Если вы хотите развернуть его на сервере, используйте Docker:
docker build -t 1c-s3-microservice .
docker run -d -p 8000:8000 \
-e AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY \
-e AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY \
-e S3_BUCKET=your-bucket-name \
1c-s3-microservice
Использование из 1С
В обработке 1С вы можете отправлять HTTP‑запросы к микросервису, например, через HTTPЗапрос:
Запрос = Новый HTTPЗапрос("http://localhost:8000/upload", "POST");
Запрос.УстановитьТелоФайла("путь/к/файлу.txt");
Ответ = HTTPКлиент.Выполнить(Запрос);
Преимущества решения
- Разделение ответственности: 1С остаётся «тонким» клиентом.
- Масштабируемость: микросервис можно развернуть на любом сервере.
- Надёжность: операции с S3 выполняются в отдельном процессе, не блокируя 1С.
- Гибкость: можно легко заменить библиотеку или добавить новые функции.
Где найти исходный код
Полный код обработки и микросервиса доступен по ссылке:
https://nizamov.studio/product/p00001
Заключение
Обмен файлами из 1С с Amazon S3 через микросервис на Python и Docker – это простое, надёжное и масштабируемое решение. Оно позволяет быстро интегрировать 1С с облачными сервисами и обеспечивает гибкость при дальнейшем развитии инфраструктуры.