# Fission — Краткий справочник команд > Базовый URL: `https://fission.kube5s.ru/console/api` > Токен передаётся через `X-Auth-Token: ` или `Authorization: Bearer ` ```bash BASE="https://fission.kube5s.ru/console/api" T="X-Auth-Token: mylogin@example.com" # demo: любая строка ≥6 символов ``` --- ## Стандартные операции ### Функции ```bash # Создать функцию curl -X POST "$BASE/functions" -H "$T" -H "Content-Type: application/json" \ -d '{"name":"hello","language":"python","code":"def main(event, context): return \"hi\""}' # Список функций curl "$BASE/functions" -H "$T" # Описание функции curl "$BASE/functions/hello" -H "$T" # Вызвать функцию curl -X POST "$BASE/functions/hello/invoke" -H "$T" \ -H "Content-Type: application/json" -d '{}' # Обновить код curl -X PUT "$BASE/functions/hello/code" -H "$T" -H "Content-Type: application/json" \ -d '{"code":"def main(event, context): return \"v2\""}' # Удалить функцию curl -X DELETE "$BASE/functions/hello" -H "$T" ``` **Языки:** `python`, `nodejs`, `go`, `php`, `ruby` **Правила имени:** строчные буквы, цифры, дефис; не начинается/не заканчивается дефисом; максимум 57 символов. --- ### Environments ```bash # Список environments curl "$BASE/environments" -H "$T" ``` --- ### Packages ```bash # Список пакетов curl "$BASE/packages" -H "$T" ``` --- ### HTTP Triggers ```bash # Список HTTP triggers curl "$BASE/httptriggers" -H "$T" ``` --- ### Time Triggers (cron) ```bash # Создать cron curl -X POST "$BASE/timetriggers" -H "$T" -H "Content-Type: application/json" \ -d '{"name":"my-cron","functionName":"hello","cron":"*/5 * * * *"}' # Список curl "$BASE/timetriggers" -H "$T" # Обновить curl -X PUT "$BASE/timetriggers/my-cron" -H "$T" -H "Content-Type: application/json" \ -d '{"cron":"0 * * * *"}' # Удалить curl -X DELETE "$BASE/timetriggers/my-cron" -H "$T" ``` --- ### Прямой вызов по route ```bash # Вызов без JSON-обёртки (чистый HTTP) curl "https://fission.kube5s.ru/fn/" -H "$T" ``` --- ## Наши расширения ### Создание из zip-архива ```bash # Создать функцию из архива напрямую curl -X POST "$BASE/functions" -H "$T" \ -F "name=my-fn" -F "language=python" -F "entrypoint=main.handler" \ -F "archive=@my-function.zip" # Обновить функцию новым архивом curl -X PUT "$BASE/functions/my-fn/archive" -H "$T" \ -F "archive=@my-function-v2.zip" ``` --- ### TTL — самоуничтожающиеся функции ```bash # Функция исчезнет через 1 час curl -X POST "$BASE/functions" -H "$T" -H "Content-Type: application/json" \ -d '{"name":"temp","language":"nodejs","code":"module.exports=async()=>({status:200,body:\"ok\"})","ttl":"1h"}' ``` Форматы TTL: `15m`, `2h`, `1d`, `7d` --- ### AI: проверить архив перед деплоем ```bash curl -X POST "$BASE/ai/lint-archive" -H "$T" \ -F "archive=@my-fn.zip" \ -F "language=python" \ -F "entrypoint=main.handler" ``` Ответ: ```json { "ok": true, "results": [{"file": "main.py", "ok": true}] } ``` Поддерживает: `.py`, `.js`, `.rb`, `.php` --- ### Обновить только таймаут ```bash curl -X PUT "$BASE/functions/hello/timeout" -H "$T" -H "Content-Type: application/json" \ -d '{"timeout": 120}' ``` --- ### Статус namespace ```bash # Готовность namespace (stages: создан → RBAC → control-plane) curl "$BASE/ns/status" -H "$T" ``` --- ### Аутентификация / получить namespace ```bash curl -X POST "$BASE/auth" -H "Content-Type: application/json" \ -d '{"token":"mylogin@example.com"}' # → {"ok":true,"namespace":"fission-a3f9c1b2...","email":"..."} ``` --- ## HTTP-коды | Код | Значение | |-----|---------| | 200 | OK | | 201 | Создано | | 400 | Ошибка валидации | | 401 | Нет/невалидный токен | | 404 | Не найдено (или чужое) | | 409 | Уже существует | | 413 | Слишком большой код/архив | | 502 | Fission внутренняя ошибка |