IBM Cloud Docs
インスタンス・メタデータ API のエラー・コード

インスタンス・メタデータ API のエラー・コード

エラー処理 で説明されているように、VPCインスタンスメタデータAPIは、リクエストの結果を示すために、標準の HTTP 応答コードを使用します。 例えば、 4xx シリーズの応答は、クライアントが解決しなければならないエラーを示しています。 5xx シリーズの応答は、サービス障害を示します。

さらに、すべての 4xx および 5xx 応答には、問題に関する追加情報を提供する JSON エラー応答オブジェクトが含まれています。 この情報には、 trace プロパティが含まれ、その値は IBM サポートが障害のトラブルシューティングを行う際に要求される可能性があります。また、 errors アレイプロパティには、問題に関連する1つ以上の特定のエラーが含まれます。 errors 配列内の各項目は、以下の JSON スキーマを使用します。

  • code - エラー・コード・ストリング (invalid_value など)
  • message-エラー・メッセージを記述するテキスト・ストリング。例えば、「 expires_in フィールドに指定する値は、 53600 の間でなければなりません。」
  • 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 フィールドに指定する値は、53600 の間でなければなりません。

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 エラー・コードが付随する場合があります。

メッセージ例: 指定されたトークンが無効であるか、有効期限が切れています。

unauthorized

構文的には有効であるが、要求された方法で操作することを許可されていないリソースを参照するヘッダー、パラメーター、パス、またはプロパティー (target によって識別される) に使用されます。

403 HTTP 状況コードに、unauthorized エラー・コードが付随する場合があります。

メッセージ例: 指定されたインスタンスでメタデータ・サービスが有効になっていません。

unknown_field

不明な照会パラメーターまたはプロパティーが指定されている場合に使用されます。

400 HTTP 状況コードに、unknown_field エラー・コードが付随する場合があります。

メッセージ例: 要求本体に不明なプロパティー xyzzy が指定されました。