mBaaSお役立ちブログ

Google Apps Scriptを使ってmBaaSを定期実行する

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と組み合わせることで簡単に実現できるようになります。これでますますサーバレス環境が進むのではないでしょうか。

バックナンバー