このトピックでは、Machine Learning Platform for AI (PAI) によって返されるステータスコードについて説明します。
ステータスコード | 説明 |
200 | リクエストが成功しました。 |
400 | プロセッサがリクエストを処理できません。 原因:
|
404 | サーバーが要求されたリソースを見つけることができません。 原因: サービス名またはサービス要求が無効なエンドポイントを使用しています。 |
401 | サービスの認証に失敗しました。 原因: サービスにアクセスするためのトークンが指定されていないか、無効です。 ソリューション
|
450 | ヘッダーフィールドが大きすぎるため、リクエストは拒否されます。 原因: リクエストのヘッダーフィールドが大きすぎます。 インスタンスがリクエストを受信すると、リクエストをキューに入れます。 インスタンスワーカーが使用可能になると、リクエストが処理されます。 デフォルトでは、各インスタンスに最大5つのワーカーを含めることができます。 この制限は、createコマンドで使用するJSONファイルのmetadata.rpc.worker_threadsパラメーターを使用して変更できます。 createコマンドの詳細については、「サービスの作成」をご参照ください。 ワーカーが長時間占有されている場合、キュー内のリクエストが山積みになり始めます。 キューが上限に達すると、新しい要求は拒否され、ステータスコード450が返されます。 これにより、要求を管理可能な数に保ち、暴走する応答時間を回避することにより、サービスの可用性が保証されます。 デフォルトでは、各キューは最大64個のリクエストを保持できます。 この制限は、createコマンドで使用するJSONファイルのmetadata.rpc.max_queue_sizeパラメーターを使用して変更できます。 createコマンドの詳細については、「サービスの作成」をご参照ください。 説明 キューに課される上限は、トラフィックのスパイクによって引き起こされるカスケード障害を防ぐための抑制手段としてある程度機能します。 ソリューション
|
408 | リクエストがタイムアウトします。 原因: 指定されたタイムアウト時間内にリクエストの処理に失敗しました。 すべての要求に同じタイムアウト期間が与えられます。 要求が指定された時間内に処理されない場合、要求はタイムアウトし、TCP接続は閉じられ、ステータスコード408が返されます。 デフォルトでは、タイムアウト期間は5秒に設定されています。 この制限は、createコマンドで使用するJSONファイルのmetadata.rpc.keepaliveパラメーターを使用して変更できます。 createコマンドの詳細については、「サービスの作成」をご参照ください。 説明 要求処理時間は、プロセッサがコンピューティング動作の実行に費やす時間、システムがネットワークパケットの受信に費やす時間、および要求がキューイングに費やす時間を含む。 |
499 | クライアントが接続を閉じます。 原因: クライアントは接続を閉じ、特定の要求の処理を停止させます。 クライアントが接続を閉じると、このステータスコードはサーバーにのみ記録され、クライアントには返されません。 例えば、クライアントではHTTPレスポンスを受信するためのタイムアウト時間が30ミリ秒に設定され、サーバではHTTPリクエストを処理するためのタイムアウト時間が50ミリ秒に設定されているとする。 クライアントがリクエストを送信してから30ミリ秒後に応答を受信しない場合、接続は閉じられます。 この場合、ステータスコード499がサーバに記録される。 |
429 | 多数のリクエストが送信されるため、リクエストはスロットリングをトリガーします。 原因: Elastic Algorithm Service (EAS) は、QPSベースのスロットリング機能を提供します。 この機能を有効にすると、サーバーで同時に処理できるリクエストの数が上限を超えると、それ以降のリクエストは拒否され、ステータスコード429が返されます。 createコマンドで使用するJSONファイルのmetadata.rpc.rate_limitパラメーターを使用して、機能を有効にできます。 createコマンドの詳細については、「サービスの作成」をご参照ください。 |
503 | サービスは利用できません。 原因: サーバーがリクエストを処理する準備ができていません。 ゲートウェイを使用してサービスにアクセスし、すべてのバックエンドサービスインスタンスが準備できていない場合、ゲートウェイからステータスコード503が返されます。 また、次の一般的なシナリオが発生する可能性があります。サービスがデプロイされ、[実行中] 状態になり、サービスのすべてのインスタンスが準備完了です。 ただし、リクエストが開始された後、ステータスコード503が返されます。 ほとんどの場合、その理由は、要求が異常であり、コードのバグを引き起こすためです。 このバグにより、バックエンドサービスインスタンスがクラッシュし、リクエストを処理できなくなります。 この場合、ゲートウェイはステータスコード503をクライアントに返します。 |