Event ファンクションは、Storage 上にファイルなどのオブジェクトがアップロードされたことを契機に実行させることが可能です。例えば、Storage に CSV ファイルがアップロードされ、そのイベントをトリガーとして Event ファンクション内でファイルをパース、ビジネスロジックを実行することができます。
1. ADP コンソールにログインし、「Function」-> 「エディタ」メニューを選択します。
2. ファンクションの詳細を入力します。
Name: ファンクションの名称
Description: ファンクションの説明
Function Type: Event
Datasource: イベントを監視する対象のデータソース
Cluster: ファンクションを実行するクラスタ
Dedup: イベントの重複排除(true or false)
Event ファンクションは at-least-once で実行されるため、Dedup を false に設定すると 稀に同一のイベントを複数回処理する場合があります。
Dedup が true の場合、イベントの重複を排除しますが、全く同一のオブジェクトを複数回アップロードすると、同一イベントとして判断され2回目以降のイベントは発生しません。
3. (オプション)ファイルの添付ボタンをクリックし、ファンクションに Python のカスタム パッケージを Zip ファイルとして添付することが可能です。
* パッケージ内に AI モデルを含めて、ファンクション内からロードすることも可能です。
4. テキストエリアに任意の Python プログラムを入力します。
左のサンプルはコードは、Event ファンクションが引数として受け取る "object" と "dsname" を使い、データソースからオブジェクトをダウンロードして、ファイルサイズをログに出力しています。
5. 「SAVE」ボタンをクリックして保存します。
下記に Event ファンクション内で、利用可能な関数とオブジェクトを記載します。
path: カスタム パッケージが配置されているディレクトリ
adpy.log(string): 実行ログへの出力関数
adpy.upload(string): ローカルにあるファイルを Storage にアップロードするための関数
Note:
複数の Event ファンクションを同一のデータソースに紐づけることも可能です。
イベント処理対象のデータソースに複数のオブジェクトをシリアルにアップロードした場合、イベントの発生順序は保証されません。