Node.js API を Apigee Edge でホストできます。ここでは、API プロキシがアプリケーションをターゲット サービスとして呼び出すことができます。
Apigee Edge での Node.js サポートにより、Node.js 内のプロキシ用にカスタマイズされたバックエンド サービスを構築できます。Apigee Edge は基本的に、Apigee の組織と環境にスコープを設定されたランタイム環境内で Node.js コードをホストします。同じ組織や環境にデプロイされる API プロキシは、Node.js アプリケーションによって公開される HTTP ベースの API を呼び出すことができます。
Node.js デプロイのオプション
Apigee には、Node.js コードをホストするための、Hosted Targets と従来の Node.js Edge デプロイ環境という 2 つのオプションがあります。
Hosted Targets にデプロイする
Hosted Targets は、Apigee 固有のランタイム テクノロジーに依存しないネイティブ環境内で Node.js アプリケーションを実行できるようにします。これはネイティブ ノード ランタイムを提供するため、好きなノード パッケージを使用できます。
デプロイする前にアプリをローカルでデバッグおよびテストすることができ、デプロイされたバージョンがローカルとまったく同じように動作することを保証できます。デプロイ時には、Hosted Targets 内でアプリケーションを実行するためのアプリケーション ランタイム バージョンを選択できます。たとえば、Node.js アプリを v8.10.0 環境またはその他のバージョンで実行するように具体的に選択できます。
次の図は、基本的なアーキテクチャを示しています。
Hosted Targets ランタイム環境は、Apigee の組織と環境にスコープが設定され、同じ組織や環境にデプロイされる API プロキシのターゲットとして機能することができます。
従来の組み込み Node.js 環境にデプロイする
Node.js を Edge にデプロイする従来の手法は、Trireme と呼ばれるオープンソースのブリッジ アプリケーションと、Rhino という JavaScript インタープリタに内部的に依存しています。これらのコンポーネントにより、Edge Java Runtime Environment で Node.js コードを直接実行できます。
従来の組み込み Node.js ランタイム環境は、Apigee の組織と環境にスコープが設定され、同じ組織や環境にデプロイされる API プロキシのターゲットとして機能することができます。
このアプローチでは、apigee-access というサポート モジュールを使用して、Node.js アプリケーション コード内から API プロキシフロー変数、キャッシュ、Key-Value マップ、割り当てにアクセスできます。
Node.js の手法の選択
Apigee では、Hosted Targets の使用を検討することをおすすめします。Hosted Targets にデプロイされた Node.js アプリは、Apigee 固有の Node.js ランタイム テクノロジーに依存しません。Node.js アプリは、ローカルの開発環境で実行されるのとまったく同じように Hosted Targets で実行されます。
さらに、従来の Node.js の Edge デプロイに対する Apigee のサポートには以下の制限事項があります。
- 古いバージョンの Node.js(0.10.32)のみがサポートされます。
- Node.js のスタンダード環境と Trireme / Rhino 環境では動作に微妙な違いがあります。
- Edge にデプロイした後に Node.js アプリをデバッグすることは困難です。
現在、Hosted Targets では、プロキシフロー コンテキスト内のリソース(フロー変数など)へのアクセスに apigee-access を使用できません。
従来の Node.js Edge デプロイの詳細については、Edge における従来の Node.js デプロイをご覧ください。
使用例
Edge 上での Node.js の一般的な使用例には、次のものがあります。
高度にカスタマイズされたスタンドアロンの HTTP ベースの API およびバックエンド サービスを構築する。
スクリプト対応のターゲット エンドポイントを利用して、複雑なモバイル最適化問題を解決する。
複合サービスおよびマッシュアップを構築する。
Express などのフレームワークを使用して新しい API のプロトタイプを迅速に開発する。
次のステップ
どの Node.js デプロイ手法が最適かを判断するには、次の概要をお読みください。