デベロッパー ポータルの内部エラー

症状

デベロッパー ポータルから SmartDocs を使用してライブ API リクエストを行ったときにエラーが発生します。

エラー メッセージ

デベロッパー ポータルでよくあるエラーは [An internal error has occurred.Please retry your request.] です。

考えられる原因

このエラーは、デベロッパー ポータルがバックエンド(smartdocs プロキシまたは実際のエンドポイント)からレスポンスを取得できなかったときに発生します。

診断

ブラウザでデベロッパー ツールを有効にし、[Network] タブを確認して実際のエラーを特定します。

よくあるエラーとその典型的な原因を次の表に示します。

エラー

典型的な原因

ERR_NAME_NOT_RESOLVED

SmartDocs プロキシの構成が誤っているか、ネットワーク ファイアウォールで制限されている

Mixed Content

ポータルは HTTPS で構成されているが SmartDocs は HTTP でリクエストしている

500 - Internal Server Error

これらのそれぞれの原因を示し、問題を解決する手順について説明します。

SmartDocs プロキシの構成が誤っているか、ネットワーク ファイアウォールで制限されている

[ERR_NAME_NOT_RESOLVED] メッセージは、smartdocs プロキシの構成が誤っているか、ポータルへのアクセス元のネットワークでファイアウォールでの制限のために smartdocs プロキシの URL を呼び出しできないことを表しています。smartdocs プロキシは、インターネットまたは社内ネットワーク(内部 API の場合)からアクセスできる必要があります。

解決策

インターネットからアクセスできるホスト名を使用して Edge 上の仮想ホストに smartdocs プロキシをデプロイすることで、必要なすべてのネットワークから smartdocs プロキシにアクセスできるようにします。

ポータルは HTTPS で構成されているが SmartDocs は HTTP でリクエストしている

[Mixed Content] エラーは、HTTPS を介して読み込まれたページから、HTTP を介して smartdocs プロキシが呼び出されていることを表しています。

解決策

この問題を解決するには、HTTPS を介して smartdocs プロキシを公開します。そうするには、TLS/SSL を使用するように構成されている仮想ホスト(通常は「セキュアな」仮想ホスト)が含まれるように smartdocs プロキシをデプロイします。

SmartDocs プロキシがエラーを返している

[500 - Internal Server Error] メッセージは、smartdocs プロキシでの問題が原因で発生することがあります。その場合は、smartdocs プロキシがそのエラーを返していることがわかります。

診断

Trace ツールを使用して、次に説明しているように smartdocs ポリシーでのエラーを診断します。詳しくは Trace ツールの使用をご覧ください。

  1. VALIDATE」組織で「smartdocs」プロキシに対してトレースを有効にして、500 Internal Server Error を返しているポリシーを特定します。

  1. トレースで該当ポリシーを選択して、エラーの原因を特定します。

解決策

特定したエラーを修正します。不明な点がある場合は Apigee サポートにお問い合わせください。

Edge Message Processor が、公開された API エンドポイントを呼び出すことができない

500 - Internal Server Error は、Smartdocs プロキシをホストしている組織に属する Message Processor が API エンドポイントを呼び出すことができない場合にも発生します。

診断

Trace ツールを使用して、次に説明しているように smartdocs ポリシーでのエラーを診断します。詳しくは Trace ツールの使用をご覧ください。

  1. VALIDATE」組織で「smartdocs」プロキシに対してトレースを有効にして、500 Internal Server Error を返しているポリシーを特定します。

  1. 上記のサンプル UI トレースでは、JavaScript ポリシー [BuildTargetAPIRequest] がターゲット URL の実行に失敗していることがわかります。
  1. JavaScript ポリシー [BuildTargetAPIRequest] から URL を取得します。
  1. 次のように、「VALIDATE」組織に関連付けられている Message Processor ノードから、その URL を直接呼び出します。
        curl -v <target URL>
        
  1. 見つかったすべてのエラーを修正します。

解決策

  1. デベロッパー ポータルで公開されている API を、「VALIDATE」組織に関連付けられている Message Processor から呼び出すことができることを確認して、発生しているすべてのエラーを修正します。
  1. Message Processor から API 呼び出しを直接実行できる場合は、SmartDocs からその API を実行できる可能性が非常に高くなります。
  1. SmartDocs 経由でその API 呼び出しを実行し、問題が修正されたかどうかを確認します。