Skip to main content
オートメーションはアプリの一部で、スケジュールに従って、または外部サービスからイベントが送信されたときに自動的に実行されます。 kazzle.config.ts の process コンポーネントで宣言します。1 つのコンポーネントは必要なだけ多くのトリガーを持つことができます。

構造

ここで 2 つのことが起こっています:
  • processModeライフサイクルを選択します — 長時間実行されるサーバー、またはトリガーごとの 1 回限りの実行。
  • triggers[] はこのコンポーネントを実行するイベントをリストアップします。
この 2 つの部分は独立しています。永続的なサーバーは cron を持つことができます。一時的なプロセスはウェブフックを持つことができます。ワークロードに合ったライフサイクルを選択してから、必要なだけ多くのトリガーを追加してください。

processMode

トリガー

各トリガーには name(コンポーネント内で一意)、kind、およびモードに応じて schedule および/または path があります。

永続モード — サーバーへの HTTP

永続的なコンポーネントのトリガーが発火すると、Kazzle は宣言された path でサーバーに POST します。リクエストは以下を含みます: ウェブフックトリガーの場合、元のリクエストボディは POST ボディとして転送されます。スケジュールトリガーの場合、ボディは空です。

トリガーモード — トリガーごとの 1 回限り

triggered コンポーネントのトリガーが発火すると、Kazzle はエントリスクリプトを新たにスポーンし、終了を待ちます。path はありません。スクリプトは環境変数からどのトリガーが発火したかを学習します。
トリガーされたコンポーネントは本番環境にアイドルマシンがありません — 呼び出しごとにスピンアップし、終了時にシャットダウンします。

ウェブフック URL

triggerName セグメントは、そのコンポーネントの triggers[] 内の kind: 'webhook' エントリと一致する必要があります。不明なトリガー名は 404 を返します。

スケジュール解像度

Cron 式は 5 フィールド(分、時間、日、月、曜日)で、分単位の解像度が最小です。分未満のスケジュールはマニフェスト検証時に拒否されます。

実行の記録方法

各トリガー発火は process_runs 行を trigger_nametriggered_byrun_id、および実行の終了ステータスで書き込みます。独自のコードからこれらをクエリするか、アプリの実行ビューで検査できます。

クレジット不足

失敗した実行は記録およびログされますが、スケジュールは通常のペースで実行を続けます — 不安定な実行がトリガーを無効にすることはありません。実行を停止する唯一のことはクレジットです:すべてのトリガー発火はスペースの残高に対してチェックされ、スペースがクレジット不足(またはビリング設定がない)の間、実行は 402 でスキップされます。これは自己修復可能です — スケジュールは武装したままで、トップアップ後の次の発火は通常どおり実行され、手動での再開は不要です。

後からオートメーションを追加

シンプルなアプリはトリガーなしで開始し、後で追加できます — 日次サマリーを追加、Stripe を接続、クリーンアップを実行。コンポーネントのライフサイクル(processMode)とトリガー(triggers[])は独立しているため、アプリの残りの部分を書き直さずに変更できます。