Идем в Serverless с кодом 1С

19.05.22

Интеграция - Облачные сервисы, хостинг

Запускаем код OneScript в Serverless Container Яндекса.

Скачать исходный код

Наименование Файл Версия Размер
Пример для сборки образа Docker
.zip 1,90Mb
1
.zip 1,90Mb 1 Скачать

Данная публикация является логическим продолжением статей других авторов:

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions 

Знакомимся с HTTP-сервисами в OneScript

И новости:

OneScript для «облачных функций» вызвал интерес у 1С-разработчиков

Мой взгляд на это всё)

В ИТ есть тренды, которые придется так или иначе принять. Одним из них являются serverless вычисления, когда вы загружаете свой код в облако и он отрабатывает по определенному событию (расписание, http-вызов и другие события, которые поддерживает конкретный провайдер)

Одна из ссылок выше  - это статья Олега Филиппова по теме. В комментариях были разные отзывы: отписались наши "штатные" негативщики, но основная масса поддержала, в том числе, запрос на добавление языка в поддержку Cloud Functions. Причем поддержали так, что общим количеством подавили другие предложения, отправив тему на первое место.

На самом деле, Яндекс функции не включают ряд других языков, и для решения этой проблемы в облако "выкатили" Serverless Containers. Это, по сути, аналог Cloud Functions, только вы используете не готовое окружение, а собираете все, что требуется сами.

Примечание

Все, что касается Yandex Cloud, Docker, Реестры с образами - все берется из документации облака и из интернета. Статей много, повторяться смысла нет.

Есть курс "Инженер облачных сервисов" на Яндекс.Практикуме. Он бесплатный. 

Информацию о HTTP в OneScript берем из документации на сайте разработчиков .

Платформа 1С здесь не используется

Теперь к делу

Будем выполнять вот такой код для примера

script.os

Функция ОбработкаВызоваHTTPСервиса(Запрос) Экспорт
	Ответ= Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки("OK");
	Возврат Ответ;	
КонецФункции

Создадим папку и накидаем в нее файлов:

 

 

  • script.os - наш код, который должен выполняться
  • web.config - параметры приложения
  • dockerfile - алгоритм сборки образа
  • Bin - бинарники OneScript из аналогичной папки дистрибутива (*.deb)

web.config

<configuration>   
   <system.web>
      <httpHandlers>
       <add verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
      </httpHandlers>
      <customErrors mode="Off"/>
   </system.web>
    <system.webServer>
        <handlers>
		 <add name="OneScript" verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
        </handlers>
    </system.webServer>
<appSettings>
	<add key="CachingEnabled" value="false"/>
</appSettings>
</configuration>

dockerfile

FROM ubuntu:16.04
RUN apt-get update -y
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata
RUN mkdir /project
WORKDIR /project
COPY web.config ./
COPY script.os ./
WORKDIR /project/Bin
COPY Bin ./
WORKDIR /project
RUN apt-get install mono-complete -y
RUN apt-get install mono-xsp4 -y
ENTRYPOINT xsp4 --port ${PORT} --nonstop

 

Выполняем сборку и отправляем образ в реестр:

docker build .  -t cr.yandex/<Идентификатор реестра>/ubuntu-os:latest

docker push cr.yandex/<Идентификатор реестра>/ubuntu-os:latest

Образ появится в облаке

 

 

Можно использовать другой реестр, при желании.

 

Запускаем код в работу:

Для этого просто выберем образ при создании Serverless Container

 

 

Сделаем контейнер публичным, и можно проверять в браузере

 

 

Немного цифр

Первый запуск функции превышает секунду. Тарифицируется 1200 мс. В этой части решение уступает, например, функции на .NET Core (400 мс)

Но последующие вызовы близки по времени выполнения и затратам: 5-6 мс (тарифицируется 100 мс - такие условия). Если контейнер не вызывается некоторое время, то опять потребуется "прогрев".

Зачем оно вообще

Я уже больше года использую Cloud Functions на .NET для решения некоторых задач. Пока все укладывается во "Фри тир", поэтому в финансовом плане это дело не обременяет совсем. Мне нравится.

А так... Боты, Алиса, и все, что держали в голове 400+ проголосовавших за фичу, теперь может быть запущено в облаке.

OneScript Serverless Yandex Cloud Яндекс Облако Docker

См. также

Интеграция 1С с облаком S3 (Amazon, Yandex Object Storage, Ceph Object Gateway S3, MinIO и др.)

Облачные сервисы, хостинг Программист 8.3.14 Конфигурации 1cv8 Россия Платные (руб)

Готовое решение по интеграции 1С с хранилищем S3 (Amazon, Yandex Object Storage, Ceph Object Gateway S3, MinIO и любое совместимое объектное хранилище). Решение даёт возможность осуществлять как основные операции (получить список, закачать, скачать, удалить и т.д.), так и расширенные (работа с бакетами, генерация ссылок, работа с правами и т.д.) с объектным хранилищем S3 прямо из 1С.

31200 руб.

27.04.2021    18875    24    70    

39

Виртуальная АТС Ростелеком - интеграция с 1С

Телефония, SIP Облачные сервисы, хостинг Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Продукт интеграции возможностей Виртуальной АТС Ростелеком в систему 1С Предприятие 8. Звонки прямо из программы 1С, уведомления о текущих звонках, регистрация пропущенных и завершенных вызовов, динамическая маршрутизация входящих звонков, ведение журнала, анализ использования связи.

12000 руб.

04.02.2021    19495    18    0    

25

В облако на работу: Архивирование postgres. Дайте два

Облачные сервисы, хостинг Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В прошлых публикациях мы, не торопясь, после настройки персонального рабочего места на РедОС 7.3, посмотрели РедОС 8 и почти полностью собрали рабочую сеть 1С на отечественной ОС подходящую для работы среднего размера компании. С веб-серверами, доменной авторизацией и прочая прочая... Осталось настроить регулярное архивирование, чтобы не потерять нажитое.

27.05.2024    657    capitan    6    

8

Интерактивные TUI элементы в OneScript

OneScript Программист Стажер Бесплатно (free)

Поговорим про меню, спиннеры, прогресс-бары и прочие свистелки для CLI приложений на OneScript

20.05.2024    2147    bayselonarrend    18    

68

В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Точки над Ё

Облачные сервисы, хостинг Linux Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В одном из лучших руководств администраторов "UNIX and Linux System Administration Handbook, © 2018 Pearson Education lnc." описывается такой метод настройки систем: "Копируй, вставляй, молись". Какой бы ни была подробной инструкция и на какой бы типовой системе она ни составлялась, всегда что-то может пойти не так. В этой публикации рассмотрим, как искать и устранять ошибки авторизации ОС сервером 1С на базе linux.

02.05.2024    780    capitan    0    

11

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Системный администратор Программист Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1818    bayselonarrend    3    

41

В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана

Облачные сервисы, хостинг Linux Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В публикации рассматриваются все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Как случаи, когда сервер 1С авторизирует веб и обычных клиентов 1С в active directory, так и когда сам сервер является клиентом, например при HTTP запросах выполняемых сервером 1С.

18.03.2024    815    capitan    0    

9

Готовое облако или выделенный сервер? Экономика владения 1С

Облачные сервисы, хостинг Бесплатно (free)

Если вы работаете с 1С, то, скорее всего, используете для этого собственный сервер. Это решение дает больше гибкости: железо всегда под рукой, в любой момент можно поменять конфигурацию или установить дополнительное ПО. Например, чтобы организовать бухгалтеру удаленный рабочий стол. Но насколько этот вариант экономически выгоден для компании? Мы сравнили три варианта развертывания 1С: на собственном сервере, на арендованном в Selectel и в готовом облаке. Какие есть преимущества и недостатки у каждого варианта и что выгоднее — разбираем в статье.

13.03.2024    732    doctor_it    6    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AntoShiK86 29 07.01.23 15:49 Сейчас в теме
Здравствуйте. Какие функции вы крутите в таком доступе? Просто 200 Ок. Это академический подход. Накиньте пожалуйста примеры, где это может быть актуально.
2. papami 56 07.01.23 20:48 Сейчас в теме
(1) В облаке я пишу на .NET. Но, в свое время, был запрос от коллег по цеху 1С, на поддержку языка в Yandex Cloud. Ее не реализовали на уровне функций в YC, но были добавлены контейнеры, в которых можно развернуть поддержку любого языка - я просто сделал пример ("рыбу").
У меня в Serverless работают боты Телеграм, навык Алисы, мониторинг (результаты) обменов 1С по разным клиентам. Обычные http-сервисы, по сути.
Оставьте свое сообщение