IBM Cloud Docs
实例元数据 API 错误代码

实例元数据 API 错误代码

错误处理中 所述,VPC 实例元数据 API 使用标准的 HTTP 响应代码来指示请求的结果。 例如,4xx-series 响应指示客户机必须解决的故障。 5xx-series 响应指示服务故障。

此外,所有 4xx5xx 响应都包含 JSON 错误响应对象,该对象提供有关问题的其他信息。 此信息包括 IBM 支持人员对故障进行故障诊断时可能请求其值的 trace 属性,以及包含与该问题相关的一个或多个特定错误的 errors 数组属性。 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 请求格式不正确或请求主体过大。

invalid_request 错误代码可能与 状态代码同时出现。400 HTTP

示例消息: 请求主体的格式不正确。

invalid_value

用于头,查询参数,路径参数或属性 (由 target 标识) 的无效值。 包括超出范围的整数值,具有无效字符的字符串值,列出的集合之外的枚举值等等。

invalid_value 错误代码可能伴随以下 状态代码:HTTP

  • 路径参数的 404
  • 400 表示所有其他个案

示例消息: 为 expires_in 字段提供的值必须介于 53600 之间。

missing_field

在未提供必需头,查询参数或属性的任何情况下使用。

missing_field 错误代码可能与 状态代码同时出现。400 HTTP

示例消息: 未在请求主体中传递可信概要文件标识。

missing_value

用于缺少必需的头,查询参数或主体属性 (由 target 标识)。

missing_value 错误代码可能与 状态代码同时出现。400 HTTP

示例消息: 必须在 Metadata-Flavor 头中提供值,例如 ibm

not_found

用于在语法上有效但引用不存在的资源的头,查询参数,路径参数或主体属性 (由 target 标识)。

not_found 错误代码可能伴随以下 状态代码:HTTP

  • 路径参数的 404
  • 400 表示所有其他个案

示例消息: 找不到布置组。

profile_not_linked

当可信概要文件未链接到虚拟服务器实例时使用。 仅针对 POST /instance_identity/v1/iam_token 方法返回此错误代码。

profile_not_linked 错误代码可能与 状态代码同时出现。400 HTTP

示例消息: 虚拟服务器实例未链接到指定的可信概要文件。

service_error

在客户机迂到服务端问题时使用。

service_error 错误代码可能与 状态代码同时出现。500 HTTP

示例消息:发生内部错误。

unauthenticated

Authorization 头中提供了不记名令牌,但该令牌已到期,格式不正确或语法正确但无效时使用。

unauthenticated 错误代码可能与 状态代码同时出现。401 HTTP

示例消息: 提供的令牌无效或已到期。

unauthorized

用于在语法上有效但未授权您以所请求方式操作的资源的头,参数,路径或属性 (由 target 标识)。

unauthorized 错误代码可能与 状态代码同时出现。403 HTTP

示例消息: 未在提供的实例上启用元数据服务。

unknown_field

在提供未知查询参数或属性时使用。

unknown_field 错误代码可能与 状态代码同时出现。400 HTTP

示例消息: 在请求主体中指定了未知属性 xyzzy