Обмен файлами из 1С с Amazon S3: микросервис на Python и Docker

Введение

В этой статье описывается, как организовать обмен файлами между 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С с облачными сервисами и обеспечивает гибкость при дальнейшем развитии инфраструктуры.