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