Hosted Targets のよくある質問

Hosted Target プロキシをサポートする Management API はありますか。

Hosted Targets をサポートするために、新しい Management API を作成したり、既存の API を変更したりといったことはしていません。ただし Hosted Target プロキシが適切に作成されている限り、既存の Management API を使用して、Hosted Targets を使用するプロキシのデプロイや管理ができます。関連情報: Node.js アプリに必要なディレクトリ構造

ターゲット バックエンドの保護に IP ホワイトリストを使えますか。

Hosted Targets が構築されているテクノロジーである Google App Engine(GAE)には、静的 IP アドレスをアプリに付与する方法がありません。GAE では、IP プール範囲を使用します。したがって、IP アドレス範囲をホワイトリストに登録できる可能性があります。詳細については、GAE のよくある質問の項目、静的 IP アドレスと App Engine アプリをご覧ください。

複数の <HostedTarget> ターゲット エンドポイントを 1 つのプロキシに置けますか。

できません。デプロイできる Hosted Target アプリケーションはプロキシ 1 つにつき 1 つだけです。プロキシの resources/hosted ディレクトリにあるアプリケーションがデプロイされます。

apigee-access の不備は回避できますか。

apigee-access モジュールは、Hosted Targets アプリで使用できません。apigee-access で従来の埋め込み Node.js を使用して Hosted Targets に移行する場合は、次に示す可能性を考慮してください。

  • Edge ポリシーの使用 - 可能であれば標準の Edge ポリシーを使用して、既存の apigee-access コードの内容を置き換えます。
  • ヘッダーの使用 - KVM 値とフロー変数を、HTTP リクエスト ヘッダー内の Node.js アプリケーションに入れられます。このストラテジーは、API プロキシのリクエスト フローで使用可能な KVM 値やフロー変数に対して機能します。
  • 環境変数の使用 - KVM によって値が提供される環境変数を設定できます。これは、ユーザーガイドのマニフェスト ファイル部分に記載されています。

Java Keystores(JKS)ファイルを TLS に使えますか。

Hosted Targets では、PEM ファイルの代わりとして TLS 向けに JKS をサポートしていません。こちらの以前のドキュメントをご覧ください。Hosted Targets ではネイティブな Node.js を使用するため、ネイティブに OpenSSL を使用します。TLS / SSL 接続を設定する場合は、Node.js ドキュメントで提供されている TLS(SSL)のドキュメントをご覧ください。

一時ファイルを管理する最善の方法を教えてください。

一時ファイルは必ず削除してください。一時ディレクトリ内のローカル ディスク ストレージは、メモリ内ファイル システムです。書き込むファイルはすべて、関数に使用できるメモリを消費します。書き込むファイルは通常、連続した呼び出しで使用できるため、これらのファイルを削除しないと、最終的にメモリ不足エラーにつながり、その結果コールド スタートが発生する可能性があります。

一時ディレクトリ以外への書き込みはしないでください。また、os.tmpdir()path.join() などプラットフォームに依存しないメソッドを使用して一時ファイルパスを構築し、関数がどのプラットフォームのエミュレータでも機能するようにします。

詳細については、こちらの Google Cloud ドキュメントをご覧ください。

複数のプロキシ リビジョンをデプロイできますか。

Apigee Edge では、さまざまなベースパスを持つ 1 つの環境に、複数のリビジョンのプロキシをデプロイできます。ただし、この動作は Hosted Targets ではサポートされていません。

リクエスト ヘッダーのサイズに上限はありますか。

Node.js の最新バージョン(11.3.0 以降)と LTS のバージョン(6.14.0 以降、8.14.0 以降、11.3.0 以降)では、Node.js で使用できるリクエスト ヘッダーサイズが最大で 8 KB になっています。8 KB を越えるヘッダーを渡したい場合は、Node.js の上記以外のバージョンを指定するようにしてください。アプリケーションの package.json ファイルで指定できます。次に例を示します。

      runtime: node
      runtimeVersion:6.4.1
      application:my-express-app
      env:
        - name: NODE_ENV
          value: production
        - name: LOG_LEVEL
          value: 3