インスタンス・メタデータ API のエラー・コード
エラー処理 で説明されているように、VPCインスタンスメタデータAPIは、リクエストの結果を示すために、標準の HTTP 応答コードを使用します。 例えば、 4xx
シリーズの応答は、クライアントが解決しなければならないエラーを示しています。 5xx
シリーズの応答は、サービス障害を示します。
さらに、すべての 4xx
および 5xx
応答には、問題に関する追加情報を提供する JSON エラー応答オブジェクトが含まれています。 この情報には、 trace
プロパティが含まれ、その値は IBM サポートが障害のトラブルシューティングを行う際に要求される可能性があります。また、 errors
アレイプロパティには、問題に関連する1つ以上の特定のエラーが含まれます。 errors
配列内の各項目は、以下の JSON スキーマを使用します。
code
- エラー・コード・ストリング (invalid_value
など)message
-エラー・メッセージを記述するテキスト・ストリング。例えば、「expires_in
フィールドに指定する値は、5
と3600
の間でなければなりません。」more_info
- 存在する場合は、このエラーに関する資料へのリンクtarget
- レスポンスでtarget
プロパティを返すエラーについては、手がかりとなるサブプロパティを確認します- 問題のあるフィールド、照会パラメーター、またはヘッダーの
name
- 問題が検出された入力の
type
(フィールドなど) value
(存在する場合) フィールド、照会パラメーター、またはヘッダー内の問題のある値
- 問題のあるフィールド、照会パラメーター、またはヘッダーの
400
JSON エラー応答オブジェクトの例:
{
"errors": [
{
"code": "invalid_value",
"message": "The `expires_in` field must not exceed `3600`.",
"more_info": "https://cloud.ibm.com/docs/vpc?topic=vpc-imd-configure-service",
"target": {
"name": "expires_in",
"type": "field",
"value": "7200"
}
}
],
"status_code": 400,
"trace": "e37872f6-f9a4-4084-a1a8-e56a1c8c8d3d"
}
エラーコードは、その後のリリースで追加、削除、または変更される可能性があり、その場合はVPCインスタンスメタデータAPIの変更ログで通知されます。 プログラムでエラー・コードを使用する場合は、防御的にコーディングすることをお勧めします。 特定のエラー・コードをチェックするコードには、常に「default」または「catch-all」文節が必要です。 そのため、返されたエラー・コードが、予期されるコードのいずれにも一致しない場合に対処できます。
invalid_request
JSON 要求の形式が誤っている場合や、要求本体が大きすぎる場合など、要求を構文解析できない場合に使用されます。
400
HTTP 状況コードに、invalid_request
エラー・コードが付随する場合があります。
メッセージ例: 要求本体の形式が誤っています。
invalid_value
ヘッダー、照会パラメーター、パス・パラメーター、またはプロパティー (target
で識別される) の無効な値に使用されます。 範囲外の整数値、無効文字を含むストリング値、リストされているセットからの列挙値などが含まれます。
以下の HTTP 状況コードに、invalid_value
エラー・コードが付随する場合があります。
404
(パス・パラメーターの場合)400
(その他のすべての場合)
メッセージ例: expires_in
フィールドに指定する値は、5
と 3600
の間でなければなりません。
missing_field
必須のヘッダー、照会パラメーター、またはプロパティーが指定されていない場合に使用されます。
400
HTTP 状況コードに、missing_field
エラー・コードが付随する場合があります。
メッセージ例: トラステッド・プロファイル ID が要求本体に渡されませんでした。
missing_value
必須のヘッダー、照会パラメーター、または本文プロパティー (target
によって識別される) が欠落している場合に使用されます。
400
HTTP 状況コードに、missing_value
エラー・コードが付随する場合があります。
メッセージ例: Metadata-Flavor
ヘッダーに ibm
などの値を指定する必要があります。
not_found
構文的には有効であるが、存在しないリソースを参照するヘッダー、照会パラメーター、パス・パラメーター、または本文プロパティー (target
で識別される) に使用されます。
以下の HTTP 状況コードに、not_found
エラー・コードが付随する場合があります。
404
(パス・パラメーターの場合)400
(その他のすべての場合)
メッセージ例: 配置グループが見つかりません。
profile_not_linked
トラステッド・プロファイルが仮想サーバー・インスタンスにリンクされていない場合に使用されます。 このエラー・コードは、POST /instance_identity/v1/iam_token
メソッドの場合にのみ返されます。
400
HTTP 状況コードに、profile_not_linked
エラー・コードが付随する場合があります。
メッセージ例: 仮想サーバー・インスタンスが、指定されたトラステッド・プロファイルにリンクされていません。
service_error
クライアントがサービス・サイドの問題を検出した場合に使用されます。
500
HTTP 状況コードに、service_error
エラー・コードが付随する場合があります。
メッセージの例: 内部エラーが発生しました。
unauthenticated
Authorization
ヘッダーにベアラー・トークンが指定されているが、トークンの有効期限が切れているか、誤った形式であるか、あるいは構文的には正しいが無効である場合に使用されます。
401
HTTP 状況コードに、unauthenticated
エラー・コードが付随する場合があります。
メッセージ例: 指定されたトークンが無効であるか、有効期限が切れています。
unknown_field
不明な照会パラメーターまたはプロパティーが指定されている場合に使用されます。
400
HTTP 状況コードに、unknown_field
エラー・コードが付随する場合があります。
メッセージ例: 要求本体に不明なプロパティー xyzzy
が指定されました。