Истечение API-ключей и лицензий
API-ключи многих сервисов имеют expiry, и тихо умрут в неудобный момент. Заведите единый «реестр истекающих секретов» и поставьте scheduled-функцию:
import os, datetime, json, requests
ITEMS = json.load(open("expirations.json"))# [{"name":"OpenAI prod key","expires":"2026-08-01"}, ...]
def handler(event, context): today = datetime.date.today() for it in ITEMS: exp = datetime.date.fromisoformat(it["expires"]) days = (exp - today).days for thr in (30, 7, 1, 0): flag = f"/tmp/exp-{it['name']}-{thr}-{exp}.flag" if days <= thr and not os.path.exists(flag): prio = 10 if thr <= 1 else (8 if thr == 7 else 5) push(f"⏳ {it['name']}: {days} дн.", f"Истекает {exp.isoformat()}. Ротируйте/продлите.", prio) open(flag, "w").close() break return {"statusCode": 200}
def push(t, m, p): requests.post(f"{os.environ['NOTIFLY_URL']}/message", params={"token": os.environ["NOTIFLY_TOKEN"]}, json={"title": t, "message": m, "priority": p}, timeout=5)Для SSL-сертификатов есть отдельный готовый
активный монитор kind: tls — алёрт за N дней до expiry
без своего кода.