このトピックでは、管理 UI を使用して Node.js アプリケーションを API プロキシにラップする最も簡単な方法について説明します。
はじめに
最初に作成する Node.js アプリは、リクエストに対して「Hello World!」と応える HTTP サーバーが一般的です。Node.js を Apigee Edge で試す最もシンプルな方法は、これとよく似た処理を実行することです。マウスを数回クリックするだけで、Edge で動作して機能するプロキシ付き Node.js HTTP サーバーを作成できます。作成したら、UI でコードエディタを使用して、その Node.js アプリの修正、Node.js ファイルの追加、ポリシーの追加などができます。
Hello World! サンプルAPI プロキシ
このセクションでは、Node.js HTTP サーバーとやり取りする Edge API プロキシの作成方法について説明します。Node.js HTTP サーバーのコードはすでに用意されており、次の簡単な手順に従うと、Edge に自動的にデプロイされます。- [Build a Proxy] ウィザードで、[Node.js App] を選択します。
- [次へ] をクリックします。
- [Build a Proxy] ウィザードの手順に従い、以下の選択を行います。
フィールド 選択 詳細 Proxy Name 「 Nodejs-Hello
」と入力します。API に表示される名前です。Proxy Base Path 「nodejs-hello」と入力します。 Source 「Hello World」サンプルを選択します(その他のオプションについては、このトピックの後の方で説明します)。 説明 API の説明を入力します。 Security Pass through (none) [Pass through (none)] を選択します。簡単なパススルー プロキシを作成します。 Virtual Hosts default, secure デフォルトを変更しないでください。仮想ホストの詳細については、仮想ホストについて(ベータ版)をご覧ください。 Build Deploy Environments [Test] を選択します。 - [Build and Deploy] をクリックします。
この操作により、新しい API プロキシが正常に作成されて、「test」環境にデプロイされたことを示す確認が表示されます。 - [View the <proxy name> proxy in the editor] をクリックして、API プロキシの詳細ページを表示します。
hello プロキシの呼び出し
hello
プロキシを呼び出すと、アプリケーションが自動的に実行され、「Hello, World」と応答します。特に指定しない限り、Node.js アプリケーションは test という環境にデプロイされています。次に、Curl を使用した基本的な呼び出しを示します(myorg は自分の組織名に置き換えます)。
$ curl http://myorg-test.apigee.net/nodejs-hello
Hello, World!
Node.js コードの表示と編集
API プロキシに追加された Node.js コードを見てみましょう。Hello World プロキシの概要ページに移動し、[Develop] をクリックします。
これにより [Develop] ビューが開き、コードエディタが表示されます。コードはここで直接編集できます。
たとえば、レスポンスを Hello, World!
から別のテキスト、Hello, Node!
などに変更し、[Save] をクリックします。プロキシが保存され、再デプロイされます。
最後に、プロキシを改めて呼び出して変更を確認します。
$ curl http://myorg-test.apigee.net/nodejs-hello
Hello, Node!
Apigee Edge での Node.js アプリケーション実行に関する追加情報
他のあらゆる Node.js アプリケーションと同様、Apigee Edge で実行される Node.js アプリケーション フレームワークは単一スレッド制御で実行されます。別のスレッドを起動する必要も(現実問題としてその機能はありません)、スレッド間で変数を同期する必要もありません。Node.js は非ブロック プログラミングを強制するので、単一のスクリプトで何千という同時リクエストに対応できます。スクリプトは何かを待機する必要がある場合に必ず CPU を手放し、待機していた状況が後で発生したら通知されるからです。
Node.js を Apigee Edge で使用するには、メイン Node.js スクリプト ファイルを指定する必要があります。
このスクリプトは、受信リクエストを処理するよう構成されている必要があり、一般には http
または https
モジュールを使用する、クライアントを作成する、などによって対応します(メイン スクリプトがこのように構成されていないと、デプロイされた後に実行されて終了するだけになります)。Apigee Edge 内では、各 Node.js アプリケーション スクリプトは、プロキシがデプロイされると冒頭から開始され、プロキシのデプロイが解除されると停止されます。開始されてから停止されるまでの間、新しいリクエストを待機しては処理します。詳細については、スタンドアロン Node.js アプリのデプロイの「読み込まれた Node.js ファイルの呼び出し」をご覧ください。
次のステップ
ファイル システムから直接スタンドアロンの Node.js アプリケーションを作成してデプロイすることもできます。
次のスタンドアロン Node.js アプリのデプロイでは、コマンドラインから apigeetool
コマンドを使用して Node.js アプリをデプロイする方法について説明します。