サーバートリガー起動

サーバートリガー起動用の Server Hook 定義方法を以下にまとめます。

{
  "<path>": [
    {
      "when": "<trigger>",
      "what": "EXECUTE_SERVER_CODE",
      "endpoint": "<endpoint_name>"
    },
    /* Other hooks */
  ],
  /* Other paths with hooks */
}

path で指定したエンティティに when で指定したトリガーが発生すると、endpoint で指定した Server Code 内の関数が実行されます。 なお、指定した関数の実行は "At Least Once" で行われるため、重複して関数が実行されることがあります。

ここで path は Bucket、User、Group、Thing、Installation のいずれかとなります。

  • Bucket:指定した Bucket で発生するトリガーをチェック。

    • path は以下のいずれかの形式で指定します。
      • kiicloud://buckets/<bucketID>:アプリケーションスコープの Bucket の場合。
      • kiicloud://groups/*/buckets/<bucketID>:グループスコープの Bucket の場合。
      • kiicloud://users/*/buckets/<bucketID>:ユーザースコープの Bucket の場合。
      • kiicloud://things/*/buckets/<bucketID>:Thing スコープの Bucket の場合。
    • 指定可能なトリガー(when)は以下のとおりです。
      • DATA_OBJECT_CREATED:指定した Bucket 内に新たな Object が作成された。
      • DATA_OBJECT_DELETED:指定した Bucket 内の Object が削除された。
      • DATA_OBJECT_UPDATED:指定した Bucket 内の Object が更新された。

    トリガーに関するパラメータは実行時パラメータとして Server Code に渡されます。詳細については こちら を参照してください。

  • User:任意のユーザーに発生するトリガーをチェック。

    • pathkiicloud://users と指定します。
    • 指定可能なトリガー(when)は以下のとおりです。
      • USER_CREATED:新たなユーザーが作成された。
      • USER_EMAIL_VERIFIED:ユーザーのメールアドレスが確認された。
      • USER_PHONE_VERIFIED:ユーザーの電話番号が確認された。
      • USER_PASSWORD_RESET_COMPLETED:ユーザーのパスワードがリセットされた。
      • USER_PASSWORD_CHANGED:ユーザーのパスワードが更新された。
      • USER_DELETED:ユーザーが削除された。
      • USER_UPDATED:ユーザーの属性が更新された。

    トリガーに関するパラメータは実行時パラメータとして Server Code に渡されます。詳細については こちら を参照してください。

    ユーザーの無効化 などのサポートされていないトリガーが必要な場合は、USER_UPDATED を設定し、無効化と同時にユーザーの属性を上書きするなどの方法を利用できます。

  • Group:任意のグループに発生するトリガーをチェック。

    • pathkiicloud://groups と指定します。
    • 指定可能なトリガー(when)は以下のとおりです。
      • GROUP_CREATED:新たなグループが作成された。
      • GROUP_DELETED:グループが削除された。
      • GROUP_MEMBERS_ADDED:新たなグループメンバーが追加された。
      • GROUP_MEMBERS_REMOVED:グループメンバーが削除された。

    トリガーに関するパラメータは実行時パラメータとして Server Code に渡されます。詳細については こちら を参照してください。

  • Thing:任意の Thing に発生するトリガーをチェック。

    • pathkiicloud://things と指定します。
    • 指定可能なトリガー(when)は以下のとおりです。
      • THING_CREATED:Thing が登録された。
      • THING_ENABLED:Thing が有効化された。
      • THING_DISABLED:Thing が無効化された。
      • THING_USER_OWNER_ADDED:ユーザーが Thing オーナーとして追加された。
      • THING_GROUP_OWNER_ADDED:グループが Thing オーナーとして追加された。
      • THING_USER_OWNER_REMOVED:ユーザーが Thing オーナーから削除された。
      • THING_GROUP_OWNER_REMOVED:グループが Thing オーナーから削除された。
      • THING_FIELDS_UPDATED:Thing 情報が更新された。
      • THING_DELETED:Thing が登録解除された。
      • THING_CONNECTED:Thing がオンラインになった(MQTT コネクションが確立された)。
      • THING_DISCONNECTED:Thing がオフラインになった(MQTT コネクションが切断された)。

    トリガーに関するパラメータは実行時パラメータとして Server Code に渡されます。詳細については こちら を参照してください。

  • Installation:プッシュ通知受け取り用にデバイスがインストールされたトリガーをチェック。

    • pathkiicloud://installations と指定します。
    • 指定可能なトリガー(when)は以下のとおりです。
      • INSTALLATION_CREATED:ユーザーがプッシュ通知受け取り用デバイスをインストールした。
      • INSTALLATION_DELETED:ユーザーがプッシュ通知受け取り用デバイスのインストールを解除した。

    トリガーに関するパラメータは実行時パラメータとして Server Code に渡されます。詳細については こちら を参照してください。

以下にサーバートリガー起動用の Server Hook の例を挙げます。

{
  "kiicloud://users": [
    {
      "when": "USER_CREATED",
      "what": "EXECUTE_SERVER_CODE",
      "endpoint": "main"
    }
  ]
}

この例では、新規ユーザーの作成を契機にエンドポイント main を実行するように定義をしています。たとえば サーバートリガーで自動的にデータ付与 と一緒にこの Server Hook を設置すると、新規ユーザーが作成されたタイミングで自動的にアイテム追加処理が実行されます。

同一のパスに対するトリガー

同一のパスに複数種類のトリガーを設定する場合、以下のように JSON 配列としてトリガーを定義します。同じパスを複数回記述すると、最後に記述したパスに対するトリガーだけが有効になるためご注意ください。

{
  "kiicloud://buckets/myBucket": [
    {
      "when": "DATA_OBJECT_CREATED",
      "what": "EXECUTE_SERVER_CODE",
      "endpoint": "func1"
    },
    {
      "when": "DATA_OBJECT_DELETED",
      "what": "EXECUTE_SERVER_CODE",
      "endpoint": "func2"
    }
  ]
}

なお、同一のトリガーに対して複数の "endpoint" は設定できません。たとえば、ユーザー作成のトリガーに対して func1func2 を呼び出すような設定を行うと、登録時にエラーメッセージが表示されます。このような設定が必要な場合は、Server Code の関数内で分岐するように実装してください。