前回はIBM Cloud FunctionsでLINE Notifyで通知をする部分をつくりましたが、Functionを起動するためのイベント(トリガー)をまだ設定していません。というわけで、今回はトリガーを設定することからやってみます。なお、この記事ではこちらのコードで動作を確認できてるところから始めます。
トリガーを選ぶ
Functionsの画面を開いたら左側のメニューから「トリガー」を選択します。初めての場合は以下のような画面が出るかと思いますので、Create
をクリックします。
すると以下のように設定可能なトリガーが表示されます。CloudantやGithubをトリガーにしたり、カスタムトリガーを使うことが出来たりします。今回はFaaSでよく使われるタイムトリガーを設定してみたいと思いますので、Periodic
(左下の時計マーク)をクリックします。
#一定時間に通知する
ここからトリガーの設定を行います。Cronで設定も出来ますがここではPatternで簡単に設定します。今回は平日の朝7時にメッセージを通知するように設定します。このとき日時を設定するときはUTCですが、日本時間で今後の通知のタイミングが左に表示されるのでそこから時間を調整します。分単位で調整できるので、例えば「5分おきに通知」なんてこともできるようです。json payloadには特に値を設定する必要がないので、このままCreate
で設定を完了させます。一度作成すると、時間の編集は出来ないので時間を変更するときはまたはじめから作り直す必要があります。
作成が終わると、トリガーの接続画面に移動します。では前回作成したアクションをこのトリガーと接続しますので、Add
をクリックします。
ここでは、新たに既存のサービスと接続したり、アクションを新規で作成することが出来ます。今回は前回作成したアクションを実行したいので、
①Select Existing
タブから前回作成したアクションを選択して
②Add
で完了
とします。
これで設定完了です。あとは時間通りにLINEに通知が来たらトリガーは正常に動作出来ています。ここから天気予報APIを入れて天気予報を通知するなんてことも出来そうです。ただし、実行時間がかかるとタイムアウトになるので気をつけましょう。
まとめ
というわけでIBM Cloud Functionsをさわってきましたが、使ってみて思ったメリット・デメリットを挙げてみます。
- メリット
- 対応言語が豊富
- 他のクラウドサービスにあるFaaSよりもシンプルにサーバーレスアプリを作れる(個人的な感覚)
- アイデア次第ではWatsonや他のIBMサービスと組み合わせて機能が拡張できる
- デバッグが分かりやすい
- デメリット
- アプリを起動するときにはバックで動作しているdockerが立ち上がってからアクションを実行するので全体の動作が遅い
- 拡張モジュールを使いたいときはCLIでの操作が必須
- ネットの情報が乏しい~~(IBM cloud全体そんな気がする…)~~
無料でも使えるので、手軽にサーバーレスでアプリを作りたいときの選択肢としてはいいと思います。