Ubuntu14.04でParseServerを実行する方法
序章
Parseは、2013年からFacebookが所有するサービスプラットフォームとしてのモバイルバックエンドです。 2016年1月、Parse は、ホストされているサービスが2017年1月にシャットダウンすることを発表しました。
ユーザーがサービスから移行できるように、Parseは Parse Server と呼ばれるバックエンドのオープンソースバージョンをリリースしました。これは、Node.jsとMongoDBを実行している環境にデプロイできます。
このガイドは、DigitalOceanDropletなどのUbuntu14.04システムにParseServerをインストールするための詳細な手順で公式ドキュメントを補足します。 これは、何よりもまず、アプリケーションの移行を検討しているParse開発者の出発点として意図されており、公式の Parse ServerGuideと併せて読む必要があります。
前提条件
このガイドは、root以外のユーザーで構成されたクリーンなUbuntu14.04システムがあることを前提としています。 sudo
管理タスクの特権。 新しいUbuntu14.04サーバーチェックリストシリーズのガイドを確認することをお勧めします。
さらに、システムにはMongoDBの実行中のインスタンスが必要です。 Ubuntu14.04にMongoDBをインストールする方法から始めることができます。 MongoDBは、作成時にこのスクリプトをユーザーデータに追加することで、新しいドロップレットに自動的にインストールすることもできます。 ドロップレットユーザーデータの詳細については、このチュートリアルをご覧ください。
システムが sudo
ユーザーとMongoDBの場合は、このガイドに戻って続行してください。
ステップ1—Node.jsと開発ツールをインストールします
現在の作業パスを sudo
ユーザーのホームディレクトリ:
- cd ~
NodeSource は、DebianおよびUbuntuNode.jsパッケージ用のAptリポジトリを提供します。 これを使用してNode.jsをインストールします。 NodeSourceは、最新の安定版リリース(この記事の執筆時点ではv5.5.0)のインストールスクリプトを提供しています。これは、インストール手順にあります。 スクリプトをダウンロードする curl
:
- curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh
このスクリプトを開くと、このスクリプトの内容を確認できます。 nano
、または選択したテキストエディタ:
- nano ./nodesource_setup.sh
次に、実行します nodesource_setup.sh
. The -E
オプション sudo
スクリプトからアクセスできるように、ユーザーの環境変数を保持するように指示します。
- sudo -E bash ./nodesource_setup.sh
スクリプトが終了すると、NodeSourceリポジトリがシステムで利用できるようになります。 使用できます apt-get
インストールするには nodejs
パッケージ。 また、インストールします build-essential
後で役立つ可能性のあるさまざまな開発ツールを提供するメタパッケージと、GitHubからプロジェクトを取得するためのGitバージョン管理システム:
- sudo apt-get install -y nodejs build-essential git
ステップ2—サンプルのParseServerアプリをインストールする
Parse Serverは、Node.jsの一般的なWebアプリケーションフレームワークである Express と組み合わせて使用するように設計されており、定義されたAPIに準拠するミドルウェアコンポーネントを特定のパスにマウントできます。 parse-server-example リポジトリには、このパターンのスタブアウトされた実装例が含まれています。
でリポジトリを取得します git
:
- git clone https://github.com/ParsePlatform/parse-server-example.git
入力します parse-server-example
クローンを作成したディレクトリ:
- cd ~/parse-server-example
使用する npm
を含む依存関係をインストールする parse-server
、現在のディレクトリ:
- npm install
npm
に必要なすべてのモジュールをフェッチします parse-server
に保存します ~/parse-server-example/node_modules
.
ステップ3—サンプルアプリケーションをテストする
使用する npm
サービスを開始します。 これにより、で定義されたコマンドが実行されます。 start
のプロパティ package.json
. この場合、実行されます node index.js
:
- npm start
Output> [email protected] start /home/sammy/parse-server-example
> node index.js
DATABASE_URI not specified, falling back to localhost.
parse-server-example running on port 1337.
Ctrl-C を押すと、実行中のアプリケーションをいつでも終了できます。
で定義されているExpressアプリ index.js
HTTPリクエストをに渡します parse-server
モジュールは、MongoDBインスタンスと通信し、で定義された関数を呼び出します。 ~/parse-server-example/cloud/main.js
.
この場合、ParseServerAPI呼び出しのエンドポイントはデフォルトで次のようになります。
http://your_server_IP/parse
別の端末では、 curl
このエンドポイントをテストします。 これらのコマンドは参照しているため、最初にサーバーにログインしていることを確認してください localhost
特定のIPアドレスの代わりに。
を送信してレコードを作成します POST
でリクエスト X-Parse-Application-Id
アプリケーションを識別するためのヘッダーと、JSONとしてフォーマットされたデータ:
curl -X POST \
-H "X-Parse-Application-Id: myAppId" \
-H "Content-Type: application/json" \
-d '{"score":1337,"playerName":"Sammy","cheatMode":false}' \
http://localhost:1337/parse/classes/GameScore
Output{"objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}
送信したデータはMongoDBに保存されており、 curl
送信するには GET
リクエスト:
- curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
Output{"results":[{"objectId":"GWuEydYCcd","score":1337,"playerName":"Sammy","cheatMode":false,"updatedAt":"2016-02-02T04:04:29.497Z","createdAt":"2016-02-02T04:04:29.497Z"}]}
で定義された関数を実行します ~/parse-server-example/cloud/main.js
:
curl -X POST \
-H "X-Parse-Application-Id: myAppId" \
-H "Content-Type: application/json" \
-d '{}' \
http://localhost:1337/parse/functions/hello
Output{"result":"Hi"}
ステップ4—サンプルアプリケーションを構成する
元の端末で、 Ctrl-C を押して、実行中のバージョンのParseServerアプリケーションを停止します。
記述されているように、サンプルスクリプトは、6つの環境変数を使用して構成できます。
変数 | 説明 |
---|---|
DATABASE_URI |
次のようなMongoDB接続URI mongodb://localhost:27017/dev |
CLOUD_CODE_MAIN |
ParseCloudCode関数を含むファイルへのパス。 cloud/main.js |
APP_ID |
アプリの文字列識別子。 myAppId |
MASTER_KEY |
アプリのすべてのセキュリティメカニズムをバイパスできる秘密のマスターキー |
PARSE_MOUNT |
次のように、ParseServerAPIが提供されるパス。 /parse |
PORT |
アプリがリッスンする必要のあるポート 1337 |
スクリプトを実行する前に、これらの値のいずれかを設定できます。 export
指図。 例えば:
- export APP_ID=fooApp
の内容を一読する価値があります index.js
、しかし、何が起こっているのかをより明確に把握するために、例の独自の短いバージョンを作成することもできます。 エディターで新しいスクリプトを開きます。
- nano my_app.js
そして、必要に応じて強調表示された値を変更して、以下を貼り付けます。
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
// Configure the Parse API
var api = new ParseServer({
databaseURI: 'mongodb://localhost:27017/dev',
cloud: __dirname + '/cloud/main.js',
appId: 'myOtherAppId',
masterKey: 'myMasterKey'
});
var app = express();
// Serve the Parse API on the /parse URL prefix
app.use('/myparseapp', api);
// Listen for connections on port 1337
var port = 9999;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
ファイルを終了して保存し、Node.jsで実行します。
- node my_app.js
Outputparse-server-example running on port 9999.
ここでも、いつでもCtrl-Cを押して停止できます my_app.js
. 上に書いたように、サンプル my_app.js
提供されたものとほぼ同じように動作します index.js
、ただし、ポート9999でリッスンし、解析サーバーは /myparseapp
、エンドポイントURLが次のようになるようにします。
http:// your_server_IP :9999 / myparseapp
そしてそれはでテストすることができます curl
そのようです:
- curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`
結論
これで、Ubuntu環境でParseServerのようなNode.jsアプリケーションを実行するための基本を理解する必要があります。 Parseからアプリを完全に移行することは、コードの変更とインフラストラクチャの慎重な計画を必要とする、より複雑な作業になる可能性があります。
このプロセスの詳細については、このシリーズの2番目のガイド Ubuntu14.04で解析アプリを解析サーバーに移行する方法を参照してください。 また、公式の Parseサーバーガイド、特に既存のParseアプリの移行に関するセクションも参照してください。