コンテンツにスキップ

イベント駆動タイプのファンクションを作成する

このページではイベント駆動タイプのファンクションの記法および性質を説明します。

イベント駆動タイプのファンクションの記法

ファンクションの実行ランタイムやエントリポイント、利用できるモジュールは ファンクションの書き方 で説明しました。ここではイベント駆動タイプのファンクション特有の事項として、ファンクションの入力値について扱います。

入力 (data)

Craft Functionsは外部からの入力として、引数 data の値を受け取ります。dataの型はobject型もしくはstring型です。多くの場合はobject型で値を受け取りますが、次の場合はstring型の値となります。

  • サーバーサイドアクションでJSON形式以外の文字列を渡した場合
  • Craft SchedulerでFunctionを定期起動する場合

入力データの詳細は ファンクション実行時に受け取るデータ を参照してください。

イベント駆動タイプのファンクションの性質

イベント駆動タイプのファンクションを作成する際に考慮すべき性質を説明します。

Craft Functions は at least once で実行される

Craftは at least once でCraft Functionsを実行します。これはトリガーが発したイベントあたり「少なくとも1回」はFunctionを実行することを意味します。したがって、トリガーあたり2回以上Functionが実行されることもあり得ます。

exactly once(トリガーのイベントあたり1回だけFunctionを実行する)を実現する場合は、トリガーから受け取るリクエストIDをCraft KVSや外部のデータベースサービスに書き込み、コード内で書き込んだレコードの有無を判定します。