初めての 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. [Next] をクリックします。
  3. [Build a Proxy] ウィザードの手順に従い、以下の選択を行います。
    項目 選択
    詳細
    Proxy Name Nodejs-Hello」と入力します。API に表示される名前です。
    Proxy Base Path 「nodejs-hello」と入力します。
    Source ["Hello World" Sample] を選択します(その他のオプションについては、このトピックの後の方で説明します)。
    Description 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 プロキシを呼び出すと、Node.js アプリケーションが自動的に実行され、「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 アプリをデプロイする方法について説明します。