2. イベント

2.1. 概要

イベントは、モバイルバックエンド基盤内で発生した事象を、JSON形式で表現・通知するものです。

ユーザがイベントを扱う場面は、下記の2通りです。

  • イベントサブスクリプション内でイベントフィルタを定義して、イベントを選り分ける。
  • イベントハンドラ(クラウドファンクション)で、イベントを処理する。

以下に、イベントの例を示します。

2.1.1. ファイルストレージイベントの例

{
    "source": {
        "type": "fileStorage"
    },
    "data": {
        "bucketName": "photo",
        "fileName": "image20180725-171630.jpg",
        "action": "file.created"
    }
}

2.1.2. スケジューライベントの例

{
    "source": {
        "type": "scheduler"
    },
    "data": {
        "schedule": "hourly"
    }
}

2.2. フォーマット

イベントはJSON形式で表現・通知されます。

イベントは下記の属性を持ちます。

  • source: イベントソース。(必須)
    • type: イベントソースの種類。v7.5.0ではfileStorage・schedulerのいずれか。(必須)
  • data: イベントの内容を示すJSONオブジェクト。dataの中身はsourceのtypeにより異なる。(必須)

2.2.1. fileStorageイベント

ファイルストレージイベントは、モバイルバックエンド基盤のファイルストレージにおいて、ファイル操作が行われた際に発生するイベントです。

ファイルストレージイベントのdataは、下記の属性を持つJSONオブジェクトです。

  • bucketName: イベントが発生したバケット名。(必須)
  • fileName: イベントが発生したファイル名。(必須)
  • action: 行われた操作。下記のいずれか。(必須)
    • file.created ファイルが作成された
    • file.read ファイルがダウンロードされた
    • file.updated ファイルが更新された
    • file.deleted ファイルが削除された
    • file.metadata-updated ファイルメタデータが更新された
    • file.published ファイルが公開された
    • file.unpublished ファイルが非公開にされた
  • deleteMark: actionがfile.deleteの場合にのみ、追加で指定される属性。0か1のいずれか。0ならば物理消去、1ならば論理消去を表す。

2.2.2. schedulerイベント

スケジューライベントは、モバイルバックエンド基盤のAPIサーバ内にあるスケジューラが発生させるイベントです。

スケジューライベントのdataは、下記の属性を持つJSONオブジェクトです。

  • schedule: スケジュールの種類を示す文字列。v7.5.0では下記のいずれか。
    • "10 minutes interval" (サーバ起動後に10分間隔で発生する。必ずしも正時に揃わない)
    • "hourly"
    • "daily"
    • "every 10 minutes" (毎正時0分、10分、20分、30分、40分、50分に発生する)
    • "halfDay"