Table of Contents
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
を使用します。 他には beforeSave
、afterSave
、beforeDelete
、afterDelete
といったトリガがあります。
コードは JavaScript で書きます。 そして、 beforeSave
の第1引数には、 クラス名を代入します。
beforeSave
は、 保存する直前に実行されます。 Webブラウザで手作業で入力する場合にも実行されますし、 他のアプリケーションからデータを挿入・更新したときにも実行されます。
コードはすべて main.js
に書くようになっています。
処理内容の説明
Example
のデータ保存時にデータを更新します。
value
フィールドの値が あらかじめ決められた list
の中にあれば フィールド a
、b
を更新するようになっています。
エラーが出ると保存できずに止まってしまうので、 エラーが出てもやりすごすための try
, catch
を用意しています。
console
はログに出力するための方法で、 console.log
、console.error
、console.warn
が利用可能です。 これらを使うと Parse.com のログ画面に出力することができます。 また、 console.error
と console.warn
はエラーログにも書き込みます。 ログの内容は コマンド parse logs
でも確認可能です。 またそれとは別に、トリガが動くとログに記録が残ります。
デプロイ
デプロイを行います。 デプロイは parse deploy
コマンドで行います。
実際に稼働し出すまで数秒時間がかかりますが、 デプロイした後は自動的にトリガが効き始めます。
ログ
以下はログの例です。 エラーが発生した場合の例も書いています。
Parse.com では cron のような Job の設定もできますが、 そのためにはまず上のようなメソッドの定義が必要です。