Apigee Edge における Node.js の概要

API プロキシが 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 ランタイム環境で Node.js コードを直接実行できます。

従来の組み込み Node.js ランタイム環境は、Apigee の組織と環境にスコープが設定され、同じ組織や環境にデプロイされる API プロキシのターゲットとして機能することができます。

この手法では、Node.js アプリケーション コード内から API プロキシのフロー変数、キャッシュ、Key-Value マップ、割り当てにアクセスできる apigee-access と呼ばれるサポート モジュールを使用できます。

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 デプロイ手法が最適かを判断するには、次の概要をお読みください。