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

19.05.22

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример для сборки образа Docker
.zip 1,90Mb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

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С v8.3 8.3.14 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бытовые услуги, сервис Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Гостиничный бизнес Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Легкая промышленность, мода и одежда Управленческий учет Платные (руб)

Расширение позволяет автоматизировать управление картами лояльности и взаимодействие с покупателями при помощи интеграции корпоративной системы 1С и специализированного облачного сервиса "CARDPR". Автоматическая онлайн синхронизация сведений о владельце электронной карты лояльности и баланса бонусных баллов на карте между корпоративной системой 1С и мобильным устройством покупателя. Оповещение покупателя об изменении баланса его электронной карты лояльности и проведении каких-либо маркетинговых акций в компании при помощи рассылки push-сообщений на его мобильное устройство.

36000 руб.

20.07.2023    3275    1    2    

11

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

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

12000 руб.

20.03.2019    23033    54    0    

37

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

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1438    capitan    0    

0

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

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    1487    Evil Beaver    11    

24

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

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    1905    capitan    5    

12

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

OneScript – это скриптовый движок для автоматизации всего и вся. О том, как OneScript помогает в разработке скриптов на языке 1С, пойдет речь в статье.

10.10.2024    2907    ardn    2    

7

Инструментарий разработчика OneScript Программист Руководитель проекта Бесплатно (free)

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

23.09.2024    664    0    stopa85    4    

5

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

Перенос 1С в облако — это процесс, который требует тщательного планирования и грамотного исполнения, чтобы избежать простоев и обеспечить бесперебойную работу системы. В этой статье рассмотрим пошаговую инструкцию по переносу 1С в облако, уделяя особое внимание минимизации рисков и обеспечению беспрерывной работы вашего бизнеса.

02.09.2024    489    EFSOL_oblako    0    

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