Parse.com で Cloud Code を作成する


Baas のサービス、 Parse.com があります。 Baas を使えば スマートフォンアプリ もサーバレスで開発できるというメリットがあり、 なかでも Parse.com はリクエスト数と登録ジョブ数が既定値以内なら無料で使い続けられるというメリットがあります。 今回そちらで Cloud Code の作成を行いました。 以下はその記録です。

環境

  • Ubuntu 15.04

やったこと

iPhone のアプリからリクエストを送信して保存する際に、 データ内容に応じて他のカラムを設定する。

手順

Parse.com の Cloud Code のデプロイ先には次の2つの場所が選べます。

  • Parse.com
  • Heroku

今回は Parse.com にデプロイする方法を取りました。

セットアップ

まずは環境をセットアップする必要があります。 parseコマンドをインストールします。 Parse.com のドキュメントに書かれている通りに行いました。

parseコマンドの使い方は、 Parse.com のドキュメントにも載っていますし、 parse --help で確認することもできます。

続いてディレクトリを用意します。 ここではアカウント情報、デプロイ先のアプリケーション、デプロイ先のサーバ(Heroku or Parse)、ローカルのディレクトリ名を入力する必要があります。 また、最後に最初のディレクトリ構成を入力するところがあります。 私はスケルトンを使用することにしました。

これでカレントディレクトリ内に作業ディレクトリが作成されました。 その点は rails new に似ています。

開発

今回は保存時のトリガ処理でした。 beforeSave を使用します。 他には beforeSaveafterSavebeforeDeleteafterDelete といったトリガがあります。

コードは JavaScript で書きます。 そして、 beforeSave の第1引数には、 クラス名を代入します。

beforeSave は、 保存する直前に実行されます。 Webブラウザで手作業で入力する場合にも実行されますし、 他のアプリケーションからデータを挿入・更新したときにも実行されます。

コードはすべて main.js に書くようになっています。

処理内容の説明

Exampleのデータ保存時にデータを更新します。

valueフィールドの値が あらかじめ決められた list の中にあれば フィールド ab を更新するようになっています。

エラーが出ると保存できずに止まってしまうので、 エラーが出てもやりすごすための try, catch を用意しています。

consoleはログに出力するための方法で、 console.logconsole.errorconsole.warn が利用可能です。 これらを使うと Parse.com のログ画面に出力することができます。 また、 console.errorconsole.warn はエラーログにも書き込みます。 ログの内容は コマンド parse logs でも確認可能です。 またそれとは別に、トリガが動くとログに記録が残ります。

デプロイ

デプロイを行います。 デプロイは parse deployコマンドで行います。

実際に稼働し出すまで数秒時間がかかりますが、 デプロイした後は自動的にトリガが効き始めます。

ログ

以下はログの例です。 エラーが発生した場合の例も書いています。

Parse.com では cron のような Job の設定もできますが、 そのためにはまず上のようなメソッドの定義が必要です。