Files
fission-src/doc/quick-ref.md
T

4.4 KiB

Fission — Краткий справочник команд

Базовый URL: https://fission.kube5s.ru/console/api
Токен передаётся через X-Auth-Token: <token> или Authorization: Bearer <token>

BASE="https://fission.kube5s.ru/console/api"
T="X-Auth-Token: mylogin@example.com"  # demo: любая строка ≥6 символов

Стандартные операции

Функции

# Создать функцию
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

# Список environments
curl "$BASE/environments" -H "$T"

Packages

# Список пакетов
curl "$BASE/packages" -H "$T"

HTTP Triggers

# Список HTTP triggers
curl "$BASE/httptriggers" -H "$T"

Time Triggers (cron)

# Создать 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

# Вызов без JSON-обёртки (чистый HTTP)
curl "https://fission.kube5s.ru/fn/<route>" -H "$T"

Наши расширения

Создание из zip-архива

# Создать функцию из архива напрямую
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 — самоуничтожающиеся функции

# Функция исчезнет через 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: проверить архив перед деплоем

curl -X POST "$BASE/ai/lint-archive" -H "$T" \
  -F "archive=@my-fn.zip" \
  -F "language=python" \
  -F "entrypoint=main.handler"

Ответ:

{
  "ok": true,
  "results": [{"file": "main.py", "ok": true}]
}

Поддерживает: .py, .js, .rb, .php


Обновить только таймаут

curl -X PUT "$BASE/functions/hello/timeout" -H "$T" -H "Content-Type: application/json" \
  -d '{"timeout": 120}'

Статус namespace

# Готовность namespace (stages: создан → RBAC → control-plane)
curl "$BASE/ns/status" -H "$T"

Аутентификация / получить namespace

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 внутренняя ошибка