实例元数据 API 错误代码
如 错误处理中 所述,VPC 实例元数据 API 使用标准的 HTTP 响应代码来指示请求的结果。 例如,4xx
-series 响应指示客户机必须解决的故障。 5xx
-series 响应指示服务故障。
此外,所有 4xx
和 5xx
响应都包含 JSON 错误响应对象,该对象提供有关问题的其他信息。 此信息包括 IBM 支持人员对故障进行故障诊断时可能请求其值的 trace
属性,以及包含与该问题相关的一个或多个特定错误的 errors
数组属性。 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 请求格式不正确或请求主体过大。
invalid_request
错误代码可能与 状态代码同时出现。400
HTTP
示例消息: 请求主体的格式不正确。
invalid_value
用于头,查询参数,路径参数或属性 (由 target
标识) 的无效值。 包括超出范围的整数值,具有无效字符的字符串值,列出的集合之外的枚举值等等。
invalid_value
错误代码可能伴随以下 状态代码:HTTP
- 路径参数的
404
400
表示所有其他个案
示例消息: 为 expires_in
字段提供的值必须介于 5
与 3600
之间。
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
示例消息: 提供的令牌无效或已到期。
unknown_field
在提供未知查询参数或属性时使用。
unknown_field
错误代码可能与 状态代码同时出现。400
HTTP
示例消息: 在请求主体中指定了未知属性 xyzzy
。