初めての Apigee Edge での Node.js

このトピックでは、管理 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 に自動的にデプロイされます。
  1. [Build a Proxy] ウィザードで、[Node.js App] を選択します。
  2. [次へ] をクリックします。
  3. [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] を選択します。
  4. [Build and Deploy] をクリックします。
    この操作により、新しい API プロキシが正常に作成されて、「test」環境にデプロイされたことを示す確認が表示されます。
  5. [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 アプリをデプロイする方法について説明します。