kazzle.config.ts. Một thành phần có thể có bao nhiêu trigger tùy ý.
Cấu trúc
processModechọn vòng đời — máy chủ chạy lâu dài hoặc chạy một lần cho mỗi trigger.triggers[]liệt kê các sự kiện sẽ kích hoạt thành phần này.
processMode
| Chế độ | Chạy gì | Khi nào sử dụng |
|---|---|---|
persistent (mặc định) | Một máy chủ HTTP chạy lâu dài. Các trigger được POST vào nó. | Thành phần đã phục vụ HTTP hoặc giữ trạng thái trong bộ nhớ (hàng đợi, websockets, bộ nhớ cache). |
triggered | Tập lệnh entry được tạo cho mỗi trigger và thoát. | Các công việc nền thuần túy — dọn dẹp hàng đêm, xử lý webhook Stripe đơn lẻ, v.v. Không có máy chủ nhàn rỗi. |
Triggers
Mỗi trigger có mộtname (duy nhất trong thành phần), một kind, và — tùy thuộc vào chế độ — một schedule và/hoặc path.
| Trường | Khi bắt buộc | Ghi chú |
|---|---|---|
name | luôn luôn | Được sử dụng làm phân đoạn URL webhook và trong nhật ký. Kebab-case. |
kind | luôn luôn | 'schedule' hoặc 'webhook'. |
schedule | khi kind: 'schedule' | Biểu thức cron 5 trường. Độ phân giải phút là mức tối thiểu. |
path | khi processMode: 'persistent' | Tuyến HTTP trên máy chủ của bạn nơi trigger đến. |
Chế độ persistent — HTTP vào máy chủ
Khi một trigger kích hoạt cho một thành phần persistent, Kazzle POST đến máy chủ của bạn tạipath được khai báo. Yêu cầu mang theo:
| Header | Nó cho bạn biết gì |
|---|---|
Authorization: Bearer ${KAZZLE_TRIGGER_SECRET} | Xác thực điều này. Từ chối các cuộc gọi không khớp. |
x-kazzle-trigger-name | name của trigger từ manifest. |
x-kazzle-trigger-run-id | ID không rõ ràng để tương quan nhật ký. |
x-kazzle-triggered-by | cron | webhook | manual. |
Chế độ triggered — một lần cho mỗi trigger
Khi một trigger kích hoạt cho một thành phầntriggered, Kazzle tạo tập lệnh entry mới và chờ nó thoát. Không có path; tập lệnh tìm hiểu trigger nào kích hoạt từ các biến môi trường.
| Biến môi trường | Giá trị |
|---|---|
TRIGGER_NAME | name của trigger từ manifest. |
TRIGGERED_BY | cron | webhook | manual. |
RUN_ID | ID không rõ ràng để tương quan nhật ký. |
WEBHOOK_PAYLOAD | Phần thân JSON (chỉ webhook triggers). |
URL Webhook
triggerName phải khớp với một mục kind: 'webhook' trong triggers[] của thành phần đó. Các tên trigger không xác định trả về 404.
Độ phân giải lịch trình
Biểu thức cron là 5 trường (phút, giờ, ngày trong tháng, tháng, ngày trong tuần) và độ phân giải phút là mức tối thiểu. Các lịch trình dưới phút bị từ chối tại thời điểm xác thực manifest.Cách ghi lại các lần chạy
Mỗi lần kích hoạt trigger ghi một hàngprocess_runs với trigger_name, triggered_by, run_id và trạng thái thoát của lần chạy. Bạn có thể truy vấn những điều này từ mã của riêng bạn hoặc kiểm tra chúng trong chế độ xem chạy của ứng dụng.
Hết tín dụng
Một lần chạy không thành công được ghi lại và ghi nhật ký, nhưng lịch trình tiếp tục chạy theo nhịp độ bình thường — một lần chạy không ổn định không bao giờ vô hiệu hóa trigger. Điều duy nhất dừng một lần chạy là tín dụng: mỗi lần kích hoạt trigger được kiểm tra dựa trên số dư của không gian, và trong khi không gian hết tín dụng (hoặc không có thiết lập thanh toán) các lần chạy bị bỏ qua với402. Điều này tự khôi phục — lịch trình vẫn được vũ trang và lần kích hoạt tiếp theo sau khi bạn nạp tiền chạy bình thường, không cần tiếp tục thủ công.
Thêm tự động hóa sau
Một ứng dụng đơn giản có thể bắt đầu mà không có trigger và có được chúng sau — thêm bản tóm tắt hàng ngày, kết nối Stripe, chạy dọn dẹp. Vòng đời của thành phần (processMode) và triggers (triggers[]) độc lập, vì vậy bạn có thể thay đổi chúng mà không cần viết lại phần còn lại của ứng dụng.