В этом разделе описаны возможности FunctionGraph, связанные с поддерживаемыми языками программирования, способами ввода кода и триггерами.
Среды выполнения
Среда выполнения (Runtime) определяет, в каком окружении будет выполняться ваш код. Окружение подразумевает под собой операционную систему, библиотеки, зависимости и все то, что нужно для выполнения вашего кода. Языки программирования, которые поддерживает FunctionGraph, определяются доступными для них средами выполнения. Подробнее в таблице:
| Среда выполнения | Версии языка | 
|---|---|
| Node.js | 6.10, 8.10, 10.16, 12.13, 16.17, 18.15 | 
| Python | 2.7, 3.6, 3.10 | 
| Java | 8 | 
| Go | 1.8, 1.x | 
| C# | .NET Core 2.0, 2.1, 3.1 | 
| PHP | 7.3 | 
| Cangjie | 1.0 | 
| HTTP | – | 
| Custom | – | 
Ссылки на SDK и примеры проектов доступны в разделе Function Development (en).
Режимы ввода кода
Передать код функции в сервис FunctionGraph можно с помощью:
- встроенного редактор кода; 
- ссылки на ZIP-архив с кодом в объектном хранилище Object Storage Service; 
- загрузки ZIP-архива с кодом в FunctionGraph напрямую. 
Подробнее о режимах ввода кода:
| Среда выполнения | Встроенный редактор | Загрузка ZIP-файла | Загрузка JAR-файла | Загрузка ZIP-файла из OBS | 
|---|---|---|---|---|
| Node.js | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
| Python | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
| Java | Не поддерживается | Поддерживается | Поддерживается | Поддерживается | 
| Go | Не поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
| C# | Не поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
| PHP | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
| Custom | Поддерживается | Поддерживается | Не поддерживается | Поддерживается | 
Триггеры
Приложения FunctionGraph состоят из функций и источников событий. Источники событий — облачные сервисы или приложения, которые создают события. Функции — пользовательский код для обработки событий.
В FunctionGraph можно настроить триггеры на нужные события. Когда заданное событие произойдет и сработает триггер, FunctionGraph автоматически вызовет функцию.
Есть два режима вызова функций:
- Синхронный режим (Synchronous invocation) — при возникновении события FunctionGraph запускает функцию и ожидает ее выполнения. 
- Асинхронный вызов (Asynchronous invocation) — при возникновении события FunctionGraph добавляет его в очередь, возвращает ответ об успехе, а события из очереди обрабатываются одно за другим. 
Подробнее о триггерах и режимах вызова функций:
| Триггер | Режим вызова функции | 
|---|---|
| Dedicated API Gateway (APIG) | Синхронный | 
| Cloud Trace Service (CTS) | Асинхронный | 
| Document Database Service (DDS) | Асинхронный | 
| Log Tank Service (LTS) | Асинхронный | 
| Distributed Message Service (DMS) for Kafka | Асинхронный | 
| Object Storage Service (OBS) | Асинхронный | 
| Simple Message Notification (SMN) | Асинхронный | 
| Timer | Асинхронный | 
- Среды выполнения
- Режимы ввода кода
- Триггеры