3. イベントサブスクリプション¶
3.1. 概要¶
イベントサブスクリプションは、イベントの検知・フィルタリング・ハンドリングからなる、イベント駆動の設定です。
イベントサブスクリプションは、JSON・YAML形式で定義します。
以下に、イベントサブスクリプションの例を示します。(同じ内容を、JSON・YAMLの両方で示します。)
3.1.1. JSON形式¶
{
"name": "photo-event",
"source": {
"type": "fileStorage"
},
"filter": {
"bucketName": "photos",
"action": {
"$in": ["file.created", "file.updated"]
}
},
"handler": {
"type": "cloudFunction",
"functionName": "makeThumbnail"
}
}
3.1.2. YAML形式¶
name: photo-event
source:
type: fileStorage
filter:
bucketName: photos
action:
$in: [file.created, file.updated]
handler:
type: cloudFunction
functionName: makeThumbnail
注釈
イベントサブスクリプションは、モバイルバックエンド基盤の内部ではJSON形式で保存されます。 ユーザがYAML形式で定義した場合でも、JSON形式に変換されて保存されます。
3.2. フォーマット¶
イベントサブスクリプションは、JSON・YAML形式のいずれかで記述します。
- name: イベントサブスクリプションの識別名です。テナント内で一意な名前としてください。(必須)
- source: イベントソースを指定します。(必須)
- type: イベントソースの種類を指定します。fileStorage, scheduler のいずれかを指定します。(必須)
- filter: イベントフィルタを定義します。詳細は後述します。(オプショナル)
- handler: イベントハンドラを指定します。(必須)
- type: イベントハンドラの種類を指定します。v7.5.0ではcloudFunctionのみがサポートされます。(必須)
- functionName: イベントハンドラのファンクション名を指定します。typeがcloudFunctionの場合に必須です。
3.2.1. イベントフィルタ¶
イベントフィルタは、MongoDBクエリのサブセットで定義します。
イベントフィルタは、イベントのdataに適用され、マッチした場合にのみハンドラが起動されます。 なお、イベントフィルタは省略可能であり、省略した場合は必ずハンドラが起動されます。
イベントフィルタで使用できるクエリは、MongoDB の以下の演算子相当のものに限定されます。 $eq, $ne, $gt, $gte, $lte, $lt, $in, $nin, $all, $exists, $and, $or, $nor, $not, $regex。