Parse 開発者の皆様へ: Azure への移行のすすめ

執筆者: Glenn Gailey (Senior Content Developer, C+E CSI)

このポストは、2 月 1 日に投稿された Azure welcomes Parse developers の翻訳です。

 

更新情報 : マイクロソフトは、Azure に Parse を簡単に実装できる Marketplace テンプレート (英語) をリリースしました。この件の詳細については、こちらのブログ記事 (英語) をご覧ください。

モバイル アプリをサポートするバックエンドとして現在 Parse のホスティング サービスをご利用のお客様は、Parse サービスの終了が発表されたこの機会に、ぜひ Azure App Service の試用をご検討ください。先日の Parse サービス終了の発表に関連して、Parse でホストされている既存のバックエンドを別のホストに移行するためのガイドが公開されました。新しいホストをお探しの方はぜひ Azure をお試しください。

移行は簡単

Parse の移行ガイドで推奨されているように、Express アプリにマウントされた Parse Server API を使用することで、Parse でホスト中のバックエンドを別のホストに移行することができます。Parse に代わって Parse Server の実装をホストするなら、Azure App Service が最適です。というのも、Azure App Service の Mobile Apps で使用している Node.js バックエンドも Express アプリであるためです。Azure App Service チームでは、移行がさらに簡単になるように、App Service での Parse Server 実行を容易にするシンプルなプロビジョニング プロセスを作成しました。

皆様は移行を検討する前に Parse 移行ガイド (英語) をお読みになり、新しい Parse Server でサポートされる機能とサポートされない機能を確認されたのではないでしょうか。Parse Server には重要なモバイル アプリ機能であるプッシュ通知が含まれていませんが、この代わりに Azure Notification Hubs を利用することができます。

移行が完了すれば、既存のデータにアクセスしているアプリで引き続き Parse Client SDK を使用できます (ただし、クライアントを更新して新しいバージョンの SDK を使用し、新しいサービスの場所を参照するように設定する必要があります)。

事前準備

Azure 上で動作する Parse Server を新たに作成する前に、以下を行っていただく必要があります。

Azure サブスクリプションを作成する

Azure サブスクリプションをお持ちでない場合は、サインアップの必要があります。こちらのページから無料試用版にサインアップできます。

MongoDB をセットアップする

Parse Server の要件の 1 つが MongoDB を使用することです (MongoDB の要件 (英語) に関するガイドが公開されています)。Parse でホストされているデータを MongoDB に移行するためのツールも提供されています。ガイドにあるように MongoDB を利用する場合、Parse では MongoLab サービスの利用を推奨しています。MongoLab サービスは、完全に管理されたクラウド データベース サービスで、Azure Marketplace からもサインアップすることができます。ただし、MongoDB をホストする場合は、Parse Server を実行するための接続情報が必要になります。

将来的には、管理されたサービスとしての NoSQL ドキュメント データベースである Azure DocumentDB の使用もご検討ください。後日、データを DocumentDB に移行し、DocumentDB と Parse Server を併用する手順について書いた記事を公開させていただく予定です。

GitHub アカウントを取得する

今回ご紹介する Azure への移行パスでは、GitHub (英語) アカウントを使用します。また、リポジトリをクローンし、変更をコミットしてリポジトリにプッシュする方法についてもご説明します。

App Service に新しいバックエンドを作成する

まず Parse Server をホストする新しいバックエンドを App Service に作成します。Azure ポータルで [ + New]、[Web + Mobile]、[Web App] の順にクリックし、バックエンドに一意の名前を付けて [Create] をクリックします。

これで、Parse Server をホストする新しいバックエンド サービスが作成されます。ただし、App Service の料金に影響しますので、この手順を実行する前に別の App Service プランを作成しておいてもよいでしょう。App Service プランは後からいつでも変更できます。詳細については、「Azure App Service プランの詳細な概要」をご覧ください。

最初のデプロイメントが完了すると、作成したバックエンドのブレードが表示されます。

App Service では、さまざまな方法でアプリをデプロイできます。次に、Parse Server リポジトリからデプロイメントをセットアップします。

Parse Server リポジトリをクローンし、Azure にデプロイする

Azure 上で Parse Server を簡単に発行できるように、App Service チームが Parse Server Example リポジトリをフォークして、App Service で正常に動作するようカスタマイズした Parse Server を作成しました。GitHub で、Azure Parse Server Example リポジトリ (英語) を自分のアカウントにフォークしてください。

このフォークは、バックエンドのソース デプロイメントとして使用します。先ほど作成したバックエンドの [Settings] ブレードに戻り、下方向にスクロールして [Continuous deployment]、[Choose Source]、[GitHub] の順にクリックします。次に、[Authorization]、[Authorize] の順にクリックし、表示される GitHub ページで Azure 管理ポータルへのアクセスを許可して (GitHub パスワードの入力が要求される場合あり)、[OK] をクリックします。

これで、ポータルが GitHub アカウントに接続されました。プロジェクトに parse-server-example のフォークを設定し、ブランチに master を選択して、[OK] をクリックします。

これでデプロイメントがセットアップされ、Parse Server のコードが GitHub プロジェクトからプルされて Azure に発行されます。何らかの理由によってデプロイメントがトリガーされない場合は、[Deployments] ブレードの [Sync] ボタンをクリックして、同期を手動で開始することもできます。

バックエンドを構成する

Parse Server で必要になる情報は、環境変数 (App Service では「アプリ設定」と呼ばれます) として用意することをお勧めします。たとえば、MongoDB の接続情報、アプリの ID、マスター キーの値などです。コードはセキュリティが確保されない状態のまま公開リポジトリに発行される可能性がありますが、アプリ設定を使用すれば重要な情報がコードに残らないため、セキュリティを強化することができます。新しいアプリ設定を作成するには、[Settings] ブレードで [Application settings] をクリックし、下方向にスクロールして [App settings] セクションを表示し、以下の設定のキー/値のペアを新規作成して、[Save] をクリックします。

キー

DATABASE_URI

MongoDB の接続文字列

APP_ID

Parse アプリの ID

MASTER_KEY

Parse のマスター キー

これにより、REST クライアントを使用して新しい Parse Server にアクセスできるようになります。ほかにもハードコードされる値 (Facebook アプリの ID など) が Parse Server で必要になる場合は、それもアプリ設定に追加することをお勧めします。

Hello World を試してみる

Parse Server Example プロジェクトには、hello という名前の “Hello World” 関数が含まれており、以下のように cURL を使用して呼び出すことができます。

 $ curl -X POST \
>   -H "X-Parse-Application-Id: dsXH3syuEuuIZvXi1niEtX49LLilneJK5oIBcLM3" \
>   -H "Content-Type: application/json" \
>   -d '{}' \
>   https://parse-on-azure.azurewebsites.net/parse/functions/hello

この呼び出しは、Parse 開発者の皆様にとっては見慣れたものだと思いますが、ここでのサービスからの応答は、違ったものになります。

 {"result":"Hello from Azure."}

これで、Parse Server が Azure 上で正常に動作していることを検証できました。次に、Cloud Code をデプロイメントに追加します。

Parse の Cloud Code を追加する

継続的デプロイメントの構成に Parse Server Example リポジトリのフォークを使用したので、Parse の Cloud Code をデプロイメントに追加するには、この GitHub リポジトリを使用するのが最も簡単です。

Cloud Code をデプロイメントに追加するには、Git クライアントまたは GitBash などのコマンドライン ツールを使用して、ローカル コンピューター上に Parse Server Example リポジトリのフォークをクローンします。

ローカルにインストールした Parse から、/Cloud および /Public サブフォルダーを新しいローカル クローンにコピーします。次に、変更を追加、コミットして、GitHub の元のフォークにプッシュします。GitHub にプッシュすると、デプロイメントが再びトリガーされます。デプロイメントが正常に完了したら、Cloud Code が使用可能になります。

この手順では、Cloud Code を GitHub の公開リポジトリに追加することになります。コードを非公開のままにするには、このリポジトリを複製 (英語) して非公開リポジトリを作成するか、最初の段階で別のデプロイメント方法に切り替える必要があります。

クライアント アプリの Parse SDK を更新する

新しい Parse Server と新しいホスティング環境を使用するには、クライアント アプリで使用している Parse SDK を更新する必要があります。Parse Server での Parse SDK の使用に関するガイド (英語) に従ってください。

プッシュ通知について

Parse Server 移行ガイド (英語) をよく読むと、以下のような記載があります。

Parse Server にはプッシュ通知機能が実装されていません。別のプッシュ プロバイダーに移行することをお勧めします。

でも心配ありません。Azure では、モバイル アプリへのプッシュ通知の送信に特化した Azure Notification Hubs という拡張性に優れたサービスをご利用いただけます。Parse のプッシュ通知と同様、Notification Hubs には各プッシュ通知サービス (APNS、GCM、WNS など)、さらには Kindle、Chrome、Baidu の認証情報が格納されています。Notification Hubs の Node.js ライブラリを使用すると、Cloud Code や他のほぼすべてのバックエンド サービスからプッシュ通知を簡単に送信することができます。近日中に、Notification Hubs を使用して Parse Server からプッシュ通知を送信する方法を公開する予定です。

まとめ

Parse Server のホスティング環境として Azure App Service を使用することに慣れたら、ほかの Azure サービスについても利用をご検討ください。これらのサービスでは、分析、ジョブのスケジュール設定、Twillio や SendGrid といったサードパーティのサービスとの統合など、Parse Server には含まれない Parse ホスティングの機能を提供しています。また App Service では、Parse Server よりも多くの組み込み認証オプションを用意しています。

Parse Server のホスティング サービスとして Azure が皆様の満足のいくものになれば何より幸いです。Parse から新しいホストへの移行がうまくいくようお祈りしています。

ではまた!

Glenn Gailey