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

19.05.22

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Пример для сборки образа 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

См. также

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

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

12000 руб.

04.02.2021    19981    22    0    

26

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

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

12000 руб.

20.03.2019    22678    53    0    

36

Групповая разработка (Git, хранилище) OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Скрипт для работы с SonarQube и локальным репозиторием Git.<br> Цель проекта – возможность выполнить быструю проверку качества кода перед тем, как помещать доработки в рабочее хранилище. В Sonar и Git выгружается не вся конфигурация, а только объекты из заданного списка.<br> https://github.com/vkrivov/go/

02.07.2024    2477    vkrivov@yandex.ru    8    

18

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

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

17.06.2024    6291    capitan    18    

39

DevOps и автоматизация разработки OneScript Системный администратор Программист Стажер Бесплатно (free)

Рассмотрим создание самоформирующейся документации через комментарии и соглашения: как это сделать и зачем, с описанием полного цикла от исходников конфигурации до странички в интернете

17.06.2024    4000    bayselonarrend    2    

61

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

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

27.05.2024    1037    capitan    6    

9

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

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

20.05.2024    2458    bayselonarrend    18    

70

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

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

02.05.2024    1005    capitan    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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-сервисы, по сути.
Оставьте свое сообщение