Google Apps Scriptで使えるNCMBライブラリを作成しています。今回はGoogle Apps Scriptのトリガー機能を使ってmBaaSを定期実行する方法を紹介します。
NCMBライブラリをインストールする
今回はGoogleスプレッドシートを使います。空のスプレッドシートを開いたら、ツールメニューのスクリプトエディタを開きます。
スクリプトエディタが開いたら、リソースのライブラリを選択します。
そして開いたダイアログで、 1yWnb7GfYsBCR-MZvi6r-TOYv_y-AV4le5P7kaG5B3iZ5VNnSk9Q55pSJ を追加します。これがNCMBライブラリのIDになります。識別子(変数名)は自由に決められます。デフォルトではNCMBとなっています。バージョン番号は基本的に最新のものを選択してください。
初期化する
まず最初にアプリケーションキーとクライアントキーで初期化をします。
var application_key = "YOUR_APPLICATION_KEY"; var client_key = "YOUR_CLIENT_KEY"; var ncmb = NCMB.init(application_key, client_key);
基本的な実装はJavaScript SDKに合わせていますが、全く同じ実装ではありません。
サンプルコード
スクリプトを呼び出す場合は次のようになります。
var result = ncmb.Script() .data({item: {name: "Hello"}}) .exec("POST", "item.js");
これはPOSTでデータを送っている例です。
次に一番下の行にデータを追加する場合は次のようになります。そして一番下の行にデータストアItemクラスの行数を保存しています。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var i = 0; while (true) { var range = sheet.getRange("D"+(i+1)); if (range.getValue() == "") { range.setValue(ncmb.DataStore("Item").count()); break; } i++; }
定期実行を設定する
最後にこの関数を定期実行させます。時計のアイコンをクリックします。
そうするとトリガーが一覧表示されますので、関数を時間主導型で、指定時間ごと(例えば1分ごと)に実行などといった指定をします。
これで指定時間ごとに関数が実行され、NCMBを定期的に呼び出せるようになります。スクリプト機能に対応したことで、JavaScript SDKを使って任意のコードを定期的に実行できるようになります。
定期実行、いわゆるCron的な機能がないのがNCMBの難点と言われてきましたが、Google Apps Scriptと組み合わせることで簡単に実現できるようになります。これでますますサーバレス環境が進むのではないでしょうか。