feat: demo managed functions with harbor-backed operator setup
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Изменено: 2026-03-14
|
||||
# event-cleaner: HTTP функция для демонстрации контролируемого изменения логики.
|
||||
# Работает без внешних пакетов.
|
||||
|
||||
import json
|
||||
from datetime import datetime, timezone
|
||||
|
||||
|
||||
def handle(event):
|
||||
"""Принимает delete_n и возвращает подтверждение обработки."""
|
||||
|
||||
payload = event if isinstance(event, dict) else {}
|
||||
|
||||
delete_n = int(payload.get("delete_n", 10))
|
||||
delete_n = max(1, min(delete_n, 100))
|
||||
|
||||
now = datetime.now(timezone.utc).isoformat()
|
||||
# Здесь intentionally имитируем очистку, чтобы показать реакцию на входные параметры.
|
||||
return json.dumps(
|
||||
{
|
||||
"ok": True,
|
||||
"accepted_delete_n": delete_n,
|
||||
"status": "simulated-cleanup",
|
||||
"generated_at": now,
|
||||
}
|
||||
), 200, {"Content-Type": "application/json"}
|
||||
@@ -0,0 +1,25 @@
|
||||
# Изменено: 2026-03-14
|
||||
# event-monitor: cron-функция для демонстрации расписания и управления кодом.
|
||||
# Работает без внешних библиотек и возвращает диагностический JSON.
|
||||
|
||||
import json
|
||||
import os
|
||||
from datetime import datetime, timezone
|
||||
|
||||
|
||||
THRESHOLD = 50
|
||||
|
||||
|
||||
def handle(request):
|
||||
"""Отдаёт heartbeat для cron-запуска и видимой проверки после apply."""
|
||||
rabbitmq_url = os.environ.get("RABBITMQ_URL", "not-set")
|
||||
now = datetime.now(timezone.utc).isoformat()
|
||||
return json.dumps(
|
||||
{
|
||||
"ok": True,
|
||||
"monitor": "alive",
|
||||
"threshold": THRESHOLD,
|
||||
"rabbitmq_configured": rabbitmq_url != "not-set",
|
||||
"generated_at": now,
|
||||
}
|
||||
), 200, {"Content-Type": "application/json"}
|
||||
@@ -0,0 +1,28 @@
|
||||
# Изменено: 2026-03-14
|
||||
# event-writer: простая HTTP функция без внешних зависимостей.
|
||||
# Правка поля response_tag в коде сразу видна в ответе после terraform apply.
|
||||
|
||||
import json
|
||||
import os
|
||||
from datetime import datetime, timezone
|
||||
|
||||
|
||||
def handle(event):
|
||||
"""Возвращает полезный JSON-ответ для визуальной проверки выката кода."""
|
||||
default_message = os.environ.get("DEFAULT_MESSAGE", "writer-default")
|
||||
|
||||
payload = event if isinstance(event, dict) else {}
|
||||
|
||||
message = payload.get("message", default_message)
|
||||
source = payload.get("source", "event-writer")
|
||||
now = datetime.now(timezone.utc).isoformat()
|
||||
|
||||
# response_tag удобно менять для демонстрации hot-update кода через terraform apply.
|
||||
response_tag = "writer-v2"
|
||||
return {
|
||||
"ok": True,
|
||||
"source": source,
|
||||
"message": message,
|
||||
"response_tag": response_tag,
|
||||
"generated_at": now,
|
||||
}
|
||||
Reference in New Issue
Block a user