Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

トラブルシューティング

トレースツールの使用

Trace は、Apigee Edge で実行されている API プロキシのトラブルシューティングと監視を目的としたツールです。Trace を使用すると、API プロキシのフローの各ステップの詳細を調べることができます。

ターゲットサーバーに送信される API 呼び出しのトレースを実行している場合、トレースでは呼び出しを cURL コマンドとして表示することもできます。ここでは、HTTP ヘッダーとメッセージペイロードを 1 ヵ所で表示できます。デバッグには最適です。

詳細については、「トレースツールの使用」を参照してください。

トレース結果のダウンロード

オフライン表示のためにトレース結果の XML ファイルをダウンロードできます。このファイルには、すべてのヘッダー、変数、ポリシーの内容を含めて、リスニングセッションの完全な詳細情報が表示されます。詳細については、「トレースツールの使用」を参照してください。

フィルタを使用したメッセージキャプチャの調整

根本原因を分析できるように、フィルタでは問題を引き起こしている可能性がある特定の呼び出しを絞り込むことができます。例えば、特定の内容を含むリクエスト、または特定のパートナまたはアプリから受信するリクエストに絞り込む必要があります。

  • 「HTTP headers」: 特定のヘッダーを含む呼び出しのみにトレースを制限します。これは問題のトラブルシューティングに役立つ優れた方法です。アプリの開発者にヘッダーを送信して、問題を引き起こしている呼び出しにこのヘッダーを含めるように依頼することができます。これ以降、Apigee Edge は、結果を調べられるように、特定のヘッダーを含む呼び出しのみを記録するようになります。  
  • 「Query parameters」: 特定のパラメータ値を含む呼び出しのみが記録されます。

フィルタを追加するには:

  1. 「Trace」ページの「Filter」セクションを開きます。

  2. 名前と値を「HTTP Header」または「Query Parameter」フィールドに入力します。空白のフィールドは評価されません。
    フィルタの横にある「X」ボタンをクリックしてフィルタを削除できます。 

HTTP ステータスコード

管理 API は RESTful であるため、レスポンスメッセージは、HTTP ステータスコードと Edge 固有のエラーメッセージの組み合わせとして解釈することができます。

例えば、会社のエンティティーを既存の会社と同じ名前で作成しようとする場合、レスポンスは次のようになります。

404
{
  "code": "messaging.config.beans.ApplicationDoesNotExist",
  "message": "APIProxy named WeatherApi does not exist in organization mycompany",
  "contexts": []
}

ここでは、いくつかの重要な HTTP ステータスコードと、それらの Apigee Edge での意味を示します。

HTTP 2xx: 200 番台のステータスコードは「成功」を表しています。状況によっては、操作の成功時に 204 HTTP ステータスコードのみが発行されます。204 は、内容がないレスポンスが送信されていることを示します。これは通常、DELETE 操作が成功したからです。

HTTP 401: これは承認の失敗です。これは、リクエストの作成に使用した資格情報が、操作の実行権限が不足しているユーザーにマッピングされていることを表します。使用しているアカウントのロールを確認してください。

HTTP 403: これは承認の失敗です。これは、使用しているユーザー名とパスワードの組み合わせが、指定した組織 (organization) に対して有効ではないことを表します。資格情報をテストするには、enterprise.apigee.com/login にログインします。ログインしたら、アカウント設定を調べて組織名を確認します。状況によっては、複数の組織に所属していることがあります。組織に対して正しい資格情報を使用していることを確認します。スペルを確認します。アカウントが必要な場合は、サインアップします。

HTTP 404: オブジェクトが見つかりませんでした。これは通常、リクエスト URL のスペルミスが原因で発生します。ただし、API のリビジョンが間違っている場合など、存在しないオブジェクトを更新しようとした場合にも発生することがあります。

HTTP 405: これは「メソッドが許可されていない」ことを表します。このステータスコードは、POST 動詞が必要とされる API 呼び出しに GET 動詞を使用しているなど、単純なミスを表しています。

HTTP 415:サポートされていないメディアタイプ。このエラーは通常、Content-type HTTP ヘッダーが間違った値に設定されている場合に POST または PUT リクエストで発生します。例えば、JSON のみをサポートする API に以下の内容を POST することを想像してください。

$ curl -X POST -H "Content-type:text/xml" -d '<SomeXML>' https://api.company.com/v1/json_service

この結果は HTTP 415 エラーになります。

GET リクエストの場合は、Accept ヘッダーを使用することを忘れないでください (Content-type ヘッダーではなく)。

HTTP 429: リクエストが多すぎます。Quota または Spike Arrest ポリシー上のレート制限を超過しました。レート制限を超過していることを表す現在のデフォルトステータスコードは 500 ですが、このデフォルトは近いうちに 429 に変更されます。429 がデフォルトステータスコードになるまで、500 を 429 に一時的に変更する方法については、「Spike Arrest policy」および「Quota policy」を参照してください。

HTTP 500: これは内部サーバーエラーです。これは問題解決のために Apigee サポートに問い合わせる必要があることを表します。

レート制限ポリシーで設定されたレート制限を超えた全リクエストに対して、HTTP ステータスコード 500 ではなく、リクエストが多過ぎることを表す 429 を返すように、Apigee Edge の組織環境を構成することができます。詳細については、「Spike Arrest policy」および「Quota policy」を参照してください。

一般的なクライアントの問題

Windows での cURL の使用

The following sections provide considerations for using cURL on Windows.

Command-line syntax

All of the example commands in the documentation use Linux/Unix command-line syntax. Consider the following when you are using cURL from a Windows command prompt:

  • On Linux/Unix, when quoting arguments, a single quote can be used as a wrapper for double-quote characters inside a pair of single quotes. Windows does not provide such multi-layered quoting. On Windows, the outermost quotes must be the double-quote character and quotes within that string must be doubled (that is, two double-quote characters), where the existing examples have one.
  • On Linux/Unix, to break a cURL call across multiple lines, you can use the \ (backslash) character. On Windows, replace this character with ^ (caret). Be sure that there is no white-space following the character that denotes the end of line.

curl および HTTPS

The management API requires TLS/SSL (HTTPS). If you encounter TLS/SSL Certificate problems in response to your cURL commands, you can:

  • certs ファイルを更新します。
  • コマンドラインオプションを使用して、代わりの certs ファイルを指定します。
  • Manually decide that you can trust the api.enterprise.apigee.com site and use either the -k or --insecure options in the curl command to override the TLS/SSL certificate requirement.

libcurl でサポートされない、または無効になっているプロトコル https

Usually seen on machines running Windows. This means that you downloaded and installed a version of curl that did not include the libcurl package. Download a different package from http://curl.haxx.se/download.html, and make sure it includes libcurl for TLS/SSL.

CLASSIFICATION_FAILURE

API サービスに展開した後でリクエストを API プロキシに送信すると、このエラーが表示されることがあります。このエラーは、API サービスが適切な API プロキシにリクエストをルーティングしようとしていて、リクエストの URI パスと一致する API プロキシが見つからないことを表しています。通常このエラーが発生するのは、リクエスト URL が、環境 (environment) に現在展開されている API プロキシ のベースパスと一致しないからです。新しい API プロキシがインポートされるとき、または生成されるとき、API サービスは、すべてのベースパスが一意であることを検証します。この点に注意してください。

  • 管理 UI (enterprise.apigee.com) にログインして、API の URI を確認します。API へのリンクを選択します。API 用の URI (ベースパスを含む) がページの上部に表示されます。
  • API プロキシが展開されていることを確認します。API プロキシが Apigee Edge にインポートされても、環境に展開されていない場合があります。API プロキシは、環境に正常に展開された後で初めて呼び出しが可能になります。クイックスタートで使用する展開ツールは、指定された環境への API プロキシのインポートと展開を両方とも実行するので注意してください。
  • リクエストが正しい環境に送信されていることを確認します。例えば、http://{myorg}-test.apigee.net/weather と http://{myorg}-prod.apigee.net/weather など。 

展開ツールのエラー

python: can't open file 'tools/deploy.py': [Errno 2] No such file or directory
deploy.py に提供したパスが正しくありません。 

インポートで以下の結果が表示される場合、このメッセージは、間違ったディレクトリから展開ツールを実行していることを表しています。 

Import failed to /v1/organizations/myorg/apis?action=import&name=weatherapi with status 500:
{
  "code" : "messaging.config.beans.ImportFailed",
  "message" : "Failed to import the bundle : java.util.zip.ZipException: ZIP file must have at least one entry",
  "contexts" : [ ]
}

この問題を解決するには、deploy.py を API サービスのベースディレクトリから実行します。展開ツールのコマンドで、ディレクトリの指定に含める値として ./apiproxy を指定します。

Windows 上の Cygwin のトラブルシューティング

Windows 上の Cygwin で、サンプルプロキシを展開しようとして '\r': コマンドが見つからないと通知するエラーが表示される場合、dos2unix ユーティリティーを実行して、シェル (.sh) ファイルの改行を変換する必要があります。which dos2unix コマンドが見つけられない場合、このユーティリティーのインストールが必要になることがあります。Cygwin インストーラでインストールすることができます。

サンプルで dos2unix を再帰的に実行するには、次の手順に従います。

  1. cd コマンドで /api-platform-samples ディレクトリに切り替えます (サンプルルートディレクトリ)。
  2. 以下のコマンドを実行します。
    find .-name *.sh |xargs dos2unix
  3. コマンドが正常に実行されたら、サンプルのために展開スクリプトを再実行できます。

JavaScript print ステートメントの出力

JavaScript ポリシーを使用してカスタム JavaScript コードを実行する場合、print() 関数を使用してデバッグ情報をトレースツールに出力できることに注意してください。この関数は、JavaScript オブジェクトモデルで直接使用できます。詳細については「print() ステートメントでの JavaScript のデバッグ」を参照してください。

API プロキシのインポートと展開

API プロキシバンドルは、15MB のサイズを超えることは許されません。この値を超えるバンドルでは、API プロキシのインポートがハングまたは失敗します。Edge for Private Cloud でこの問題を回避するには、「API プロキシの設計と開発のベストプラクティス」を参照してください。

Help or comments?