排查批量虚拟机创建问题


本文档介绍如何解决批量实例 API 创建操作的问题。

操作错误

当您使用批量实例 API 创建虚拟机时,如果请求成功启动,create 请求会返回 HTTP 200 OK 以及 RUNNING 状态。如果请求未成功启动,API 会返回以下响应之一。

无效

如果在创建虚拟机时出现以下 API 响应字段,则说明 API 请求未正确写入,或者使用了批量 API 不支持的属性。

API 响应字段

  • HTTP 400
  • "reason": "invalid"

如需解决此问题,请执行以下操作:

  1. 查看响应中的 message 字段,以确定请求中的哪个属性导致了错误。
  2. 更新导致错误的属性。
  3. 重试请求。
  4. 如果请求再次失败,尝试使用 API Explorer 来验证请求。如需了解详情,请参阅验证 API 请求

超出配额

如果创建虚拟机时出现以下 API 响应字段,则说明已达到某个资源的配额上限。如需详细了解配额,请参阅资源配额

API 响应字段

  • HTTP 403
  • "reason": "quotaExceeded"
如需解决此问题,请执行以下操作:

  1. 查看 `message` 字段以确定请求超出了哪个资源配额。
  2. 执行以下任一操作:

超出速率限制

如果在创建虚拟机时出现以下 API 响应字段,则说明已达到每秒 20 个请求的限制,或者同时运行了超过 10 个批量操作。

API 响应字段

  • HTTP 403
  • "reason": "rateLimitExceeded"

如需解决此问题,请等待一些请求完成,然后尝试再次发出请求。

容量不足

如果在创建虚拟机时出现以下 API 响应字段,则说明您尝试在其中创建虚拟机的区域或可用区容量不足。

API 响应字段

  • HTTP 503
  • "reason": "insufficientCapacity"
如需解决此问题,请执行以下某项操作:

  • 在另一个区域中创建虚拟机
  • 如果使用可用区端点,则在另一个可用区中创建虚拟机
  • 尝试其他虚拟机配置
  • 稍后重试请求

请求状态错误

当您使用批量实例 API 创建虚拟机时,如果请求成功启动,create 请求会返回 HTTP 200 OK 以及 RUNNING 状态。但是,请求可能会在完成之前失败。您可以检查请求的状态,以确保请求成功完成。如果请求未成功完成,您会看到以下请求状态之一。

超出配额

如果轮询操作时出现以下 API 响应字段,则说明请求由于达到某个资源的配额上限而失败。如需详细了解配额,请参阅资源配额

API 响应字段

  • "status": "done"
  • "httpErrorMessage": "FORBIDDEN"
  • "code"": "QUOTA_EXCEEDED"

如需解决此问题,请执行以下操作:

  1. 查看 `message` 字段以确定请求超出了哪个资源配额。
  2. 执行以下任一操作:

资源已经存在

如果在轮询操作时出现以下 API 响应字段,则说明请求因尝试创建已存在的资源而失败。

API 响应字段

  • code: RESOURCE_ALREADY_EXISTS
  • httpErrorMessage: CONFLICT
  • status: DONE

如需解决此问题,请执行以下操作:

  1. 查看 message 字段以确定已存在的资源名称。
  2. 使用其他 namePattern 重试请求。如需了解详情,请参阅在一个区域中创建多个虚拟机

容量不足

如果在轮询操作时出现以下 API 响应字段,则说明请求失败,因为您尝试在其中创建虚拟机的区域或可用区(如果使用可用区端点)容量不足。

API 响应字段

  • "status": "DONE"
  • "httpErrorMessage": "SERVICE UNAVAILABLE"
  • "code": "ZONE_RESOURCE_POOL_EXHAUSTED"

如需解决此问题,请执行以下某项操作:

  • 在另一个区域中创建虚拟机
  • 如果使用可用区端点,则在另一个可用区中创建虚拟机
  • 尝试其他虚拟机配置
  • 稍后重试请求

后续步骤