すべてのプロダクト
Search
ドキュメントセンター

API Gateway:API デバッグ中に発生する問題のトラブルシューティング

最終更新日:Jun 03, 2026

API Gateway では、公開済みの API をオンラインでデバッグできます。このトピックでは、API デバッグ中に発生する問題のトラブルシューティング方法について説明します。

デバッグの制約

API Gateway コンソールの API デバッグ機能を使用して、公開済みの API をデバッグし、障害のトラブルシューティングを行います。開始する前に、以下の制約に注意してください。

説明
  • API デバッグ機能は、署名認証、簡易認証 (AppCode) 、Basic 認証プラグイン (BasicAuth プラグイン) による認証の 3 つの認証方式をサポートしています。

  • API デバッグ機能は、multipart および form-data をサポートしています。デバッグページでファイルをアップロードできます。

  • デバッグページでのリクエストパケットの最大サイズは 512 KB です。より大きなペイロードの場合は、SDK を使用してデバッグしてください。

  • インスタンスに許可リストまたは拒否リストを含む IP アドレスベースのスロットリングプラグインを設定した場合は、デバッグに使用する IP アドレスがリストで許可されていることを確認してください。この IP アドレスは、API デバッグページの左下隅で確認できます。

レスポンスヘッダーからのエラー情報の読み取り

API Gateway は、受信したすべてのリクエストに対してレスポンスを返します。X-Ca で始まるヘッダーには、API Gateway が返す診断情報が含まれています。トラブルシューティングに最も役立つ 3 つのヘッダーは次のとおりです。

  • X-Ca-Error-Code:エラーコード。API Gateway がリクエストを拒否した場合にのみ存在します。

  • X-Ca-Request-Id:一意のリクエスト ID。API Gateway は、すべてのリクエストに対してこの ID を生成して返します。クライアントとバックエンドサービスの両方でこれを記録してください。これは、トレースとトラブルシューティングのための主要な手がかりとなります。

  • X-Ca-Error-Message:エラーメッセージ。リクエストが失敗した場合、X-Ca-Error-Code とともに返されます。

X-Ca-Request-Id による呼び出しの詳細の検索

X-Ca-Error-CodeX-Ca-Error-Message を使用して、最初の障害を特定します。3 つの結果が考えられます。

API Gateway によって報告されたエラー

X-Ca-Error-Code が空でない場合は、API Gateway によってリクエストが拒否されたことを示します。このエラーコードは 6 文字の文字列です。原因の簡単な説明は、X-Ca-Error-Message で確認できます。エラーコードの完全なリストについては、「エラーコード」をご参照ください。

バックエンドサービスによって報告されたエラー

HTTP ステータスコードが 200 でなく、X-Ca-Error-Code が空の場合、API Gateway はリクエストを正常に転送しましたが、バックエンドサービスが 200 以外のレスポンスを返しました。バックエンドサービスのロジックを確認してください。Alibaba Cloud Marketplace から API を購入した場合は、サービスプロバイダーにお問い合わせください。

リクエスト成功

HTTP ステータスコードが 200 の場合、API Gateway はリクエストを転送し、バックエンドサービスが成功レスポンスを返しました。

より詳細な調査を行うには、X-Ca-Request-Id を使用して Simple Log Service で詳細なリクエストログをクエリし、API Gateway コンソールで結果を表示してください。また、テクニカルサポートと共有することもできます。

コンソールでリクエストを検索するには、次の手順を実行します。

  1. API Gateway コンソールにログオンします。

  2. 左側のナビゲーションペインで、[API コール] > [トラブルシューティング] をクリックし、[API Gateway のリージョン][X-Ca-Request-Id] を入力し、[クエリ] をクリックします。

説明

ログフィールドの詳細については、「Simple Log Service を使用して API コールのログを管理する」をご参照ください。

トレースログの取得

API デバッグページでリクエストを送信した後、そのトレースログを表示できます。このログは、リクエストライフサイクル全体をキャプチャします。具体的には、API Gateway がクライアントから受信したリクエスト、API Gateway 内での処理ステップ、API Gateway がバックエンドサービスに送信したリクエスト、バックエンドレスポンス、クライアントに返される最終レスポンスが含まれます。

RAM ユーザーアカウントまたは引き受けたロールを使用している場合は、リクエストを送信する前に[トレースログの記録]を選択してください。 また、アカウントは、API が存在するインスタンスに対して、ルートアカウントから付与された apigateway:AcquireGatewayToken 権限を持っている必要があります。 権限の付与に関する詳細については、「RAM を使用した API の管理」をご参照ください。

次の例は、この権限を付与するポリシーステートメントを示しています。

{
 "Version": "1",
 "Statement": [
 {
 "Effect": "ALLOW",
 "Action": "apigateway:AcquireGatewayToken",
 "Resource": "acs:apigateway:{#regionId}:{#accountId}:instance/{#InstanceId}"
 }
 ]
}
# {#} 記号は、実際の値に置き換える必要がある変数を示します。

[診断] タブを使用したエラーの分析

[診断] タブの [呼び出し情報] セクションでは、任意の呼び出しのログを調査できます。2 つのレイテンシーフィールドにより、障害が API Gateway 内で発生したのか、バックエンドサービスで発生したのかをすぐに特定できます。

  • TotalLatency:API Gateway がクライアントリクエストを受信してから、完全なレスポンスをクライアントに送信するまでの合計時間。

  • ServiceLatency:API Gateway がバックエンドサービスにリクエストを送信してから、完全なレスポンスを受信するまでの時間。

ServiceLatency が 0 の場合、リクエストは API Gateway によってインターセプトされ、バックエンドサービスには到達しませんでした。ServiceLatency が 0 より大きい場合、リクエストはバックエンドサービスに到達しました。

ログには、リクエストパスの各段階の I/O タイムスタンプも記録されます。

フィールド

説明

FrontRequestStart

API Gateway がクライアントリクエストの受信を開始した時刻

FrontRequestEnd

API Gateway がクライアントリクエストの受信を完了した時刻

BackendRequestStart

API Gateway がバックエンドサービスへのリクエスト送信を開始した時刻

BackendRequestEnd

API Gateway がバックエンドサービスへのリクエスト送信を完了した時刻

BackendResponseStart

API Gateway がバックエンドサービスレスポンスの受信を開始した時刻

BackendResponseEnd

API Gateway がバックエンドサービスレスポンスの受信を完了した時刻

FrontResponseStart

API Gateway がクライアントへのレスポンス送信を開始した時刻

FrontResponseEnd

API Gateway がクライアントへのレスポンス送信を完了した時刻

ログフィールドの詳細については、「Simple Log Service を使用して API コールのログを管理する」をご参照ください。