BaasBoxは、データベースサーバーおよびアプリケーションサーバーとして機能するアプリケーションです。 BaasBoxは、すぐに使用できるように、バックアップを通じてユーザー登録、ユーザー管理、役割管理、コンテンツ管理、ファイル管理、およびデータベース管理機能を提供します。これらの機能はすべて標準のHTTPREST APIを介して公開されるため、Webおよびモバイルアプリケーションの開発者は、BaasBoxをバックエンドとして使用してデータを保存できます。開発者は、アプリケーションの他の部分で使用されるBaasBoxベースのマイクロサービスを作成することもできます。
この記事では、単純なアプリケーションバックエンドを作成するときにBaasBoxをインストールし、ユーザーを作成し、管理コンソールを使用して、RESTAPIを調べる方法について説明します。
BaasBoxをインストールするには、公式WebサイトからBaasBoxの最新の安定バージョンをダウンロードします。これを行うには、 wget
コマンドを使用できます。
wget http://www.baasbox.com/download/baasbox-stable.zip
unzip
コマンドを使用して、ダウンロードしたzipファイルからBaasBoxを抽出します。 unzip
がない場合は、次のコマンドを使用してインストールします。
sudo apt-get install unzip
次に、zipファイルの内容を抽出します。
unzip baasbox-stable.zip
たとえば、このコマンドはzipファイルの内容を baasbox-XYZ
という名前のディレクトリに抽出します。XYZ
ディレクトリは、 0.9.5
などの最新バージョンになります。新しく作成したディレクトリを入力します。
cd baasbox-X.Y.Z
このディレクトリには、BaasBoxを起動するために実行する必要がある start
という名前のファイルが含まれています。これを行うには、最初に次のコマンドを使用して実行可能にする必要があります。
chmod +x ./start
次に、BaasBoxを起動し、次のコマンドを実行します。
. /start
次のような出力が表示されます。
2016- 06- 2814:32:14,554- [ info]- BaasBox is Ready.2016-06-2814:32:14,558-[info]- Application started(Prod)2016-06-2814:32:14,733-[info]- Listening for HTTP on /0:0:0:0:0:0:0:0:90002016-06-2814:32:15,261-[info]- Session Cleaner: started
2016- 06- 2814:32:15,263- [ info]- Session cleaner: tokens:0- removed:02016-06-2814:32:15,263-[info]- Session cleaner: finished
上記の出力の3行目は、BaasBoxが実行中であり、マシンの「9000」ポートからアクセスできることを示しています。デフォルトのBaasBox構成は、すべてのネットワークインターフェイスでこのポートをリッスンします。 BaasBoxには、次の方法でアクセスできるようになりました。
http:// localhost:9000
および http://127.0.0.1:9000
、インストールされたサーバーから(またはSSHトンネルを介して) サーバーが配置されている内部ネットワークからのhttp:// your_internal_server_ip:9000
(内部ネットワーク上にある場合) http:// your_ip_address:9000
は、 your_ip_address
が公的にアクセス可能なIPアドレスである場合、インターネットから取得されます。必要に応じて、BaasBoxに特定のネットワークインターフェイスとさまざまなポートをリッスンさせることができます。これを行うには、次のコマンドを使用します。
. /start -Dhttp.port=target_port -Dhttp.address=target_interface
ブラウザで http:// your_ip_address:9000 / console
にアクセスして、BaasBox管理コンソールにアクセスすると、次のようなインターフェイスが表示されます。
BaasBoxを実行した後、アプリケーションと一部のユーザーを設定しましょう。
この記事では、簡単なTodoリストマネージャーを作成します。
引き続き次の点に注意してください。
user1
とユーザー user2
を作成しますuser1_password
と user2_password
です。user1_session_id
と user2_session_id
です。Rest APIを使用してBaasBoxを管理できますが、管理コンソールを使用する方が便利な場合もあります。2番目の手順でわかるように、管理コンソールはこの状態です。ブラウザの「http:// your_ip_address:9000 / console」リンクにアクセスします。初めて使用するため、デフォルトの資格情報でログインしてください。
admin
admin
1234567890
ログインすると、BaasBoxダッシュボードが表示されます。
管理コンソールを使用して、アプリケーションのユーザーを作成しましょう。
ユーザー管理は、BaasBoxの最も便利な機能の1つです。 BaasBoxには、編集できないプライベートビルトインユーザーがいます。これには、管理コンソールへのログインに使用したユーザーの「admin」が含まれます。
BaasBoxでは、ロールを定義してユーザーに割り当て、きめ細かいアクセス制御を行うこともできます。デフォルトでは、BaasBoxには次の3つの役割があります。
管理者
-この役割には完全な無制限のアクセス権があります backoffice
-この役割は、登録ユーザーが作成したコンテンツへのアクセスを許可します登録済み
-これは、新しく登録されたユーザーのデフォルトの役割ですこれらの事前構成された役割に加えて、独自の役割を追加することもできます。新しいロールが作成されると、前述の「登録済み」ロールと同じ権限が付与されます。
管理コンソールまたはRESTAPIを使用して、BaasBoxでユーザーを作成できます。通常、REST APIを使用して、たとえばアプリケーションのユーザー登録プロセスを通じて、プログラムでユーザーを作成します。
管理コンソールからユーザーを追加するときに、ユーザーのカスタムロールを設定できます。ただし、組み込みのREST APIを使用して登録する場合、新しく作成されたユーザーには「登録済み」の役割が割り当てられます。
BaasBoxの管理コンソールから新しいユーザーを作成するには、管理コンソールで[ユーザー>ユーザー]メニューを開き、[新しいユーザー]ボタンをクリックしてください。
これにより、作成しているユーザーの詳細を入力できるフォームが開きます。
ユーザー名、パスワード、パスワードの再入力、役割ですが、他のすべてのフィールドはオプションのフィールドである必要があります。必要に応じて、このフォームを下にスクロールして他の詳細を入力できることに注意してください。
このユーザーのユーザー名を user1
に設定します。任意の役割を選択できますが、最も一般的に使用される役割は「登録済み」です。すべての詳細を入力したら、[**変更を保存] **ボタンをクリックして、ユーザー作成プロセスを完了します。
以降のセクションでは、RESTAPIを使用してユーザーを作成します。次に、アプリケーションのコンテンツの場所を構成しましょう。
BaasBoxは、[MongoDB](https://cloud.tencent.com/product/mongodb?from=10680)などのNoSQLデータベースによって提供されるコレクションと同様に、コンテンツをコレクションに編成します。コレクションは documents
と同じタイプです。 SQLデータベースに精通しているユーザーは、「コレクション」と「テーブル」をほぼ同じように考えることができます。同様に、 document
は record
に少し似ています。
コレクションは管理者のみが作成できます。コレクションを作成する最も一般的な方法は管理コンソールからですが、RESTAPIを使用してこれを行うこともできます。このセクションでは、管理コンソールからコレクションを作成する方法について説明します。
すべてのコンテンツ管理機能は、管理コンソール「DATA」の「コレクション」メニューと「ドキュメント」メニューにあります。
データ>コレクションメニューを開きます。アプリケーション内の現在のすべてのコレクションを一覧表示するページが表示されます。
新しいコレクションを作成するには、[**新しいコレクション] **ボタンをクリックします。これにより、コレクション名の入力を求めるフォームが表示されます。
todos
コレクションの名前を入力し、[**変更を保存] **をクリックしてコレクションの作成プロセスを完了します。これで、アプリケーションのユーザーは、REST APIを使用して、このコレクションとこのコレクション内のドキュメントにアクセスできます。それがどのように機能するか見てみましょう。
管理コンソールを使用してさまざまなタスクを実行する方法がわかったので、BaasBoxのRESTAPIを使用して同じタスクを実行する方法を見てみましょう。
REST APIは、Webアプリケーションやモバイルアプリケーションからコンソールアプリケーションまで、さまざまなタイプのアプリケーションで使用できます。次の例では、 curl
を使用してリクエストをシミュレートします。フロントエンドプラットフォームに応じて、必要に応じてこれらの例を調整できます。
ユーザーコマンドの作成に使用されるcurl
の一般的な形式は次のとおりです。
curl http://your_ip_address:9000/user \
- d '{"username" : "username", "password" : "password"}' \
- H Content-type:application/json \
- H X-BAASBOX-APPCODE:baasbox_appcode
この例では、ユーザー名を使用してユーザー user2
を作成します。好きなパスワードを選択してください。 X-BAASBOX-APPCODE
ヘッダーのデフォルト値 1234567890
を使用します。これらの値を使用すると、コマンドは次のようになります。
curl http://your_ip_address:9000/user \
- d '{"username" : "user2", "password" : "user2_password"}' \
- H Content-type:application/json \
- H X-BAASBOX-APPCODE:1234567890
このコマンドを実行した場合の出力は、次のようになります。
{" result":"ok","data":{"user":{"name":"user2","status":"ACTIVE","roles":[{"name":"registered","isrole":true}]},"id":"a4353548-501a-4c55-8acd-989590b2393c","visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByFriends":{},"visibleByRegisteredUsers":{"_social":{}},"signUpDate":"2016-04-05T13:12:17.452-0400","generated_username":false,"X-BB-SESSION":"992330a3-4e2c-450c-8d83-8eaf2903188b"},"http_code":201}
これは、上記の出力のフォーマットされたバージョンです。
{" result":"ok","data":{"user":{"name":"user2","status":"ACTIVE","roles":[{"name":"registered","isrole":true}]},"id":"a4353548-501a-4c55-8acd-989590b2393c","visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByFriends":{},"visibleByRegisteredUsers":{"_social":{}},"signUpDate":"2016-04-05T13:12:17.452-0400","generated_username":false,"X-BB-SESSION":"992330a3-4e2c-450c-8d83-8eaf2903188b"},"http_code":201}
上記の出力の id
に注意してください。 BaasBox id
は、ユーザーごとに一意のIDを生成します。このIDは、REST APIを介してこの特定のユーザーのドキュメントを取得、変更、または削除する場合に使用します。
注意すべき2番目の値は X-BB-SESSION
です。これには、セッションIDuser2
が今後のすべてのクエリに表示される必要があります。この user2_session_id
値については、以降の章で参照します。
セッションIDuser2
ができたので、前に管理コンソールで作成したユーザーの user1
を取得しましょう。これを行うには、 user1
を介してRESTAPIを使用してログインします。 curl
がログインに使用するコマンドの一般的な形式は次のとおりです。
curl http://your_ip_address:9000/login \
- d "username=username" \
- d "password=password" \
- d "appcode=baasbox_appcode"
この例では、ユーザー名は「user1」、パスワードは作成時に使用したパスワード「user1」、BaasBoxアプリケーションコードは「1234567890」です。これらの値を使用すると、コマンドは次のようになります。
curl http://your_ip_address:9000/login \
- d "username=user1" \
- d "password=user1_password" \
- d "appcode=1234567890"
このコマンドを実行した場合の出力は、次のようになります。
{" result":"ok","data":{"user":{"name":"user1","status":"ACTIVE","roles":[{"name":"registered","isrole":true}]},"id":"84191e4c-2471-48a7-98bb-ecdaf118285c","visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByFriends":{},"visibleByRegisteredUsers":{"_social":{}},"signUpDate":"2016-04-05T13:06:35.750-0400","generated_username":false,"X-BB-SESSION":"74400b4b-d16c-45a2-ada3-1cd51cc202bb"},"http_code":200}
これは、上記の出力のフォーマットされたバージョンです。
{" result":"ok","data":{"user":{"name":"user1","status":"ACTIVE","roles":[{"name":"registered","isrole":true}]},"id":"84191e4c-2471-48a7-98bb-ecdaf118285c","visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByFriends":{},"visibleByRegisteredUsers":{}},"signUpDate":"2016-04-05T13:06:35.750-0400","generated_username":false,"X-BB-SESSION":"74400b4b-d16c-45a2-ada3-1cd51cc202bb"},"http_code":200}
上記の応答は、 user1
の X-BB-SESSION
を示しており、今後のすべてのクエリでセッションIDuser1
を使用します。これから、この user1_session_id
値を参照します。
アプリケーションで2つのドキュメントを作成しましょう。管理コンソールを使用して作成したユーザー user1
にドキュメントを割り当ててから、RESTAPIを使用して作成したユーザー user2
に別のドキュメントを割り当てます。作成するドキュメントの構造は次のとおりです。
Sample Document Contents{"list_name":"Task List Name","tasks":[{"task":"Task Details","done":false},{"task":"Task Details","done":false}]}
構造を見ると、ドキュメントには2つの属性があることがわかります。 1つはタスクリストの名前で、もう1つはリスト内のタスクリストです。
新しいドキュメントを作成するためのcurl
コマンドの一般的な形式は次のとおりです。
curl -X POST http://your_ip_address:9000/document/collection_name \
- d 'json_formatted_document' \
- H Content-type:application/json \
- H X-BB-SESSION:session_id
user1
でドキュメントを作成することから始めましょう。この例では、コレクションの名前は todos
であり、挿入するドキュメントは次のとおりです。
Document Contents{"list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}]}
ドキュメントが user1
に関連付けられていることを確認するために、ユーザーがシステムにログインしたときに user1
によって取得されたセッションIDを使用します。
次のコマンドを入力して、 user1
のドキュメントコンテンツを作成します。
curl -X POST http://your_ip_address:9000/document/todos \
- d '{"list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}]}' \
- H Content-type:application/json \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次のような出力が生成されます。
{" result":"ok","data":{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
これは、上記の出力のフォーマットされたバージョンです。
{" result":"ok","data":{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
新規ユーザーの場合と同様に、BaasBoxはすべての新しいドキュメントのIDを作成します。この id
をメモしておきます。後で user2
がこのリストにアクセスするときに使用します。以下のセクションでは、このドキュメントのIDを「user1_list1_id」と呼びます。
これで、同じ方法を使用して次のことを実行できます。
user1
の別のリストを作成しますuser2
の2つのリストを作成しますこれらの手順を完了すると、 todos
コレクションに合計4つのドキュメントが作成されます。以降の章では、これらのドキュメントのIDを次のように参照します。
これで、REST APIを使用してデータをクエリする方法を学習できるように、いくつかのデータを使用できます。
idを持つドキュメントを取得するためのcurl
の一般的な形式は次のとおりです。
curl http://your_ip_address:9000/document/collection_name/document_id \
- H X-BB-SESSION:session_id
user1
( user1
資格情報)によって作成された最初のドキュメントを取得する場合、コマンドは次のようになります。
curl http://your_ip_address:9000/document/todos/user1_list1_id \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次のような出力が得られます。
{" result":"ok","data":{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
これは、応答のフォーマットされたバージョンです。
{" result":"ok","data":{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
単一のドキュメントを取得する方法がわかったので、今回は user2
セッションIDを使用してドキュメントを取得しない限り、同じ操作を再試行してください。
curl -X POST http://your_ip_address:9000/document/todos/user1_list1_id \
- H X-BB-SESSION:user2_session_id
このコマンドを実行すると、次のような出力が表示されます。
{" result":"error","message":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f not found","resource":"/document/todos/c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","method":"GET","request_header":{"Accept":["*/*"],"Host":["localhost:9000"],"User-Agent":["curl/7.35.0"],"X-BB-SESSION":["8f5a2e48-0f42-4478-bd1b-d28699158c4b"]},"API_version":"0.9.5","http_code":404}
これは同じ出力で、読みやすくするためにフォーマットされています。
{" result":"error","message":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f not found","resource":"\/document\/todos\/c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","method":"GET","request_header":{"Accept":["*\/*"],"Host":["localhost:9000"],"User-Agent":["curl\/7.35.0"],"X-BB-SESSION":["8f5a2e48-0f42-4478-bd1b-d28699158c4b"]},"API_version":"0.9.5","http_code":404}
ご覧のとおり、 user2
はこのドキュメントを作成しておらず、アクセスできないため、get操作が失敗しました。 user2
コマンドを実行しようとして、それが user2``id
で作成されたドキュメントである場合、そのドキュメントを取得できます。
コレクションからアクセス可能なすべてのドキュメントを取得するために使用されるコマンドcurl
の一般的な形式は次のとおりです。
curl http://your_ip_address:9000/document/collection_name \
- H X-BB-SESSION:session_id
このコマンドは、ユーザーがアクセスできるドキュメントのみを返すことに注意してください。たとえば、 user1
を使用して次のコマンドを実行してみましょう。
curl http://your_ip_address:9000/document/todos \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次のような出力が得られます。
{" result":"ok","data":[{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},{"@rid":"#24:2","@version":1,"@class":"todos","list_name":"User 1 - List 2","tasks":[{"task":"User1 List2 task 1","done":false},{"task":"User1 List2 task 2","done":false}],"id":"7c99c877-d269-4281-8a22-ef72175085f4","_creation_date":"2016-04-05T20:46:14.338-0400","_author":"user1"}],"http_code":200}
これは、この出力のフォーマットされたバージョンです。
{" result":"ok","data":[{"@rid":"#24:1","@version":2,"@class":"todos","list_name":"User 1 - List 1","tasks":[{"task":"User1 List1 task 1","done":false},{"task":"User1 List1 task 2","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},{"@rid":"#24:2","@version":1,"@class":"todos","list_name":"User 1 - List 2","tasks":[{"task":"User1 List2 task 1","done":false},{"task":"User1 List2 task 2","done":false}],"id":"7c99c877-d269-4281-8a22-ef72175085f4","_creation_date":"2016-04-05T20:46:14.338-0400","_author":"user1"}],"http_code":200}
出力からわかるように、 user1
だけがアクセスできるドキュメントを返しました。 user2
に属するセッションIDで同じクエリを実行すると、異なるドキュメントのセットが表示されます。
ドキュメントを更新するためのcurl
コマンドの一般的な形式は次のとおりです。
curl -X PUT http://your_ip_address:9000/document/collection_name/document_id \
- d 'new_json_formatted_document' \
- H Content-type:application/json \
- H X-BB-SESSION:session_id
ドキュメントを更新する際に留意すべき点が2つあります。
この user1_list1_id
コマンドを使用して、idドキュメントを次の内容で更新してみましょう。
{" list_name":"User 1 - List 1 Updated","tasks":[{"task":"New User1 List1 task 1","done":false}]}
この更新を行うためのコマンドは次のとおりです。
curl -X PUT http://your_ip_address:9000/document/todos/user1_list1_id \
- d '{"list_name":"User 1 - List 1 Updated","tasks":[{"task":"New User1 List1 task 1","done":false}]}' \
- H Content-type:application/json \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次のような出力が得られます。
{" result":"ok","data":{"@rid":"#24:1","@version":4,"@class":"todos","list_name":"User 1 - List 1 Updated","tasks":[{"task":"New User1 List1 task 1","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
これは同じ出力で、フォーマットされています。
{" result":"ok","data":{"@rid":"#24:1","@version":4,"@class":"todos","list_name":"User 1 - List 1 Updated","tasks":[{"task":"New User1 List1 task 1","done":false}],"id":"c83309e7-cbbd-49c8-a76b-9e8fadc72d6f","_creation_date":"2016-04-05T20:34:30.132-0400","_author":"user1"},"http_code":200}
ご覧のとおり、ドキュメントは新しい情報で更新されています。
ドキュメントを削除するcurl
コマンドの一般的な形式は次のとおりです。
curl -X DELETE http://your_ip_address:9000/document/collection_name/document_id \
- H X-BB-SESSION:session_id
ドキュメントを削除できるのは、ドキュメントの所有者とドキュメントの「削除」権限を持つユーザーのみです。
次のように、IDが user1_list1_id
のコマンドを使用してドキュメントを削除しましょう。
curl -X DELETE http://your_ip_address:9000/document/todos/user1_list1_id \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次の出力が得られます。
{" result":"ok","data":"","http_code":200}
これは、ドキュメントが正常に削除されたことを意味します。今後、 id
でこのドキュメントにアクセスしようとすると失敗します。
デフォルトでは、BaasBoxは、ユーザーが自分で作成していないドキュメントにアクセスできないようにします。ただし、複数のユーザーにドキュメントへのアクセスを提供する必要がある場合があります。 IDが user1_list1_id
のドキュメントへのアクセスを user2
に許可しましょう。
curl
がドキュメントへのアクセスを許可するために使用するコマンドの一般的な形式は次のとおりです。
curl -X PUT http://your_ip_address:9000/document/collection_name/document_id/access_type/user/username \
- H X-BB-SESSION:session_id
このコマンドは、このドキュメントへのフルアクセス権を持つユーザーが実行した場合にのみ機能します。 access_type
プレースホルダーには、次の4つの値のいずれかを指定できます。
iduser1_list1_id
のドキュメントへの user2
読み取りアクセスを許可するには、 user1
セッションIDを指定して次のコマンドを実行します。
curl -X PUT http://your_ip_address:9000/document/todos/user1_list1_id/read/user/user2 \
- H X-BB-SESSION:user1_session_id
このコマンドを実行すると、次の出力が得られます。
{" result":"ok","data":"","http_code":200}
これは、 user2
がドキュメント user1_list1_id
にアクセスできることを示しています。このドキュメント user2
にアクセスしようとすると、エラー応答の代わりにドキュメントの詳細が表示されます。
長時間実行するアプリケーションがある場合は常に、実行を停止するリスクがあります。これは、さまざまな理由(アプリケーションエラー、システムの再起動など)が原因で発生する可能性があります。予期せず終了したときに再起動するようにアプリケーションを構成することをお勧めします。これにより、アプリケーションを保守するための管理オーバーヘッドが最小限に抑えられます。
このアプリケーションでは、長時間実行されるアプリケーションを簡単に管理できる[Supervisor](http://supervisord.org/)を使用します。スーパーバイザーに詳しくない場合は、[スーパーバイザーのインストールとubuntu16.04での簡単な使用(再現)](https://cloud.tencent.com/developer/article/1185747?from=10680)を参照してください。
まず、インストールスーパーバイザー:
sudo apt-get install supervisor
スーパーバイザーがアプリケーションを管理するには、構成ファイルを作成する必要があります。このファイルに baasbox.conf
という名前を付け、 / etc / supervisor / conf.d
ディレクトリに配置しました。
sudo nano /etc/supervisor/conf.d/baasbox.conf
ファイルに次のように入力します。
[ program:Baasbox]
directory =/home/sammy/baasbox-0.9.5
command =/home/sammy/baasbox-0.9.5/start
autostart =true
autorestart =true
startsecs =5
user = sammy
stdout_logfile =/var/log/supervisor/baasbox.log
次に、これらの変更をスーパーバイザーに通知し、スーパーバイザーにこれらの変更を使用させる必要があります。次のコマンドを実行します。
supervisorctl reread
次に、次のコマンドを実行します。
supervisorctl update
これで、何らかの理由でアプリケーションがシャットダウンするたびに、Supervisorは手動による介入なしでアプリケーションが再起動することを確認します。
この記事では、BaasBoxを使用して管理コンソールを使用し、REST APIを使用してコンテンツ、ユーザー、およびアクセス許可を管理する方法を学習しました。この記事で紹介したトピックに加えて、BaasBoxはより多くの機能も提供します。さらに、BaasBox管理コンソールを参照して、ファイルの管理、データベースバックアップの取得と復元、およびAPIエンドポイントの可用性の構成を可能にする部分に慣れることができます。さらに重要なことに、次のアプリケーションでBaasBoxの使用を開始できるようになりました。
Linuxオープンソース情報チュートリアルの詳細については、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細をご覧ください。
参照:「Ubuntu14.04にBaasBoxをインストールして使用する方法」
Recommended Posts