Skip to main content
Automatyzacje to części aplikacji, które działają samodzielnie — zgodnie z harmonogramem lub gdy usługa zewnętna wyśle zdarzenie. Deklarujesz je w komponencie process w kazzle.config.ts. Jeden komponent może mieć tyle wyzwalaczy, ile potrzebujesz.

Struktura

Tutaj zachodzą dwie rzeczy:
  • processMode określa cykl życia — długotrwały serwer lub jednorazowe uruchomienie na wyzwalacz.
  • triggers[] wymienia zdarzenia, które powinny uruchomić ten komponent.
Te dwie części są niezależne. Serwer persistent może mieć cron. Proces efemeryczny może mieć webhook. Wybierz cykl życia pasujący do obciążenia, a następnie dołącz tyle wyzwalaczy, ile chcesz.

processMode

Wyzwalacze

Każdy wyzwalacz ma name (unikalną w obrębie komponentu), kind i — w zależności od trybu — schedule i/lub path.

Tryb persistent — HTTP do serwera

Gdy wyzwalacz uruchamia się dla komponentu persistent, Kazzle POSTuje do serwera na zadeklarowanej path. Żądanie zawiera: W przypadku wyzwalaczy webhook, oryginalna treść żądania jest przekazywana jako treść POST. W przypadku wyzwalaczy schedule treść jest pusta.

Tryb triggered — jednorazowo na wyzwalacz

Gdy wyzwalacz uruchamia się dla komponentu triggered, Kazzle uruchamia skrypt wejściowy od nowa i czeka na jego zakończenie. Nie ma path; skrypt dowiaduje się, który wyzwalacz się uruchomił, z zmiennych środowiskowych.
Komponenty triggered nie mają bezczynnych maszyn w produkcji — uruchamiają się na każde wywołanie i zamykają się przy wyjściu.

Adresy URL webhooków

Segment triggerName musi odpowiadać wpisowi kind: 'webhook' w triggers[] tego komponentu. Nieznane nazwy wyzwalaczy zwracają 404.

Rozdzielczość harmonogramu

Wyrażenia cron mają 5 pól (minuta, godzina, dzień miesiąca, miesiąc, dzień tygodnia) i rozdzielczość minutowa to minimum. Harmonogramy poniżej minuty są odrzucane podczas walidacji manifestu.

Jak są rejestrowane uruchomienia

Każde uruchomienie wyzwalacza zapisuje wiersz process_runs z trigger_name, triggered_by, run_id i statusem wyjścia uruchomienia. Możesz je odpytać z własnego kodu lub sprawdzić w widoku uruchomień aplikacji.

Brak kredytów

Nieudane uruchomienie jest rejestrowane i logowane, ale harmonogram nadal działa w normalnym tempie — niestabilne uruchomienie nigdy nie wyłącza wyzwalacza. Jedyną rzeczą, która zatrzymuje uruchomienie, są kredyty: każde uruchomienie wyzwalacza jest sprawdzane względem salda Space’u, a gdy Space nie ma kredytów (lub nie ma skonfigurowanego rozliczenia), uruchomienia są pomijane z kodem 402. To się samo naprawia — harmonogram pozostaje aktywny i następne uruchomienie po uzupełnieniu kredytów działa normalnie, bez ręcznego wznowienia.

Dodawanie automatyzacji później

Prosta aplikacja może zacząć bez wyzwalaczy i zyskać je później — dodaj codzienne podsumowanie, połącz Stripe, uruchom czyszczenie. Cykl życia komponentu (processMode) i wyzwalacze (triggers[]) są niezależne, więc możesz je zmienić bez przepisywania reszty aplikacji.