文档目录

apiTimeout

调用API时传入timeout参数

ZStack Cloud的RESTful API支持在HTTP header中通过X-API-Timeout传入timeout,单位为秒,例如:
X-API-Timeout: 300

该timeout会自动赋值给API产生的下游消息和agent command。

通过全局配置设置API的默认timeout

如果API调用者未通过X-API-Timeout HTTP Header指定timeout,ZStack Cloud会通过全局配置获得该API的默认timeout。

所有操作类API(非读API,例如query api)都有一个全局配置项控制其默认timeout。其全局配置如下:
category: apiTimeout
name: API的java class全名,例如:org.zstack.header.vm.APICreateVmInstanceMsg

单位为毫秒。

全局配置也支持字符串配置timeout的方式,例如300s, 1h, 2m, 3d, 10w, 1y,这里s/m/h/d/w/y分别代表:秒/分/小时/天/周/年,如没有后缀则代表毫秒。

配置创建云主机的timeout示例:
UpdateGlobalConfig category=apiTimeout name=org.zstack.header.vm.APICreateVmInstanceMsg value=3h

兼容历史版本的zstack.properties配置API timeout

历史版本(3.2.0之前)可以在zstack.properties配置API的默认超时时间,例如:
ApiTimeout.org.zstack.header.image.APIAddImageMsg = timeout::3h
3.2.0兼容这种方式。当升级到3.2.0及后续版本时,在创建对应API的全局配置时,使用zstack.properties中配置的API timeout值作为该API全局配置的默认值。
Note: 升级到3.2.0后,通过zstack.properties配置API timeout的方式已不再需要,所有API的超时可通过全局配置设置。

注意事项

  • 读API未提供全局配置设置超时时间。
    读API主要为数据库读取操作,不应过长,默认超时时间为5分钟,可以在zstack.properties中通过api.timeout.syncCallAPI配置所有读API的超时时间,例如:
    api.timeout.syncCallAPI = 10m
  • 非API触发的内部消息的超时时间只能通过zstack.properties配置。
    非API触发的内部消息是指该消息是内部服务发起的,例如HA服务发出的StartVmInstanceMsg,此类内部消息的超时时间也只能通过zstack.properties配置,默认为30分钟:
    api.timeout.internalMessage = 30m
名字 描述 默认值 可选的参数值
org.zstack.header.image.APIAddImageMsg
  • 默认为3h,单位为s/m/h/d(即:秒/分/小时/天),用于设置添加镜像的超时上限。
  • 如果超过此时间,镜像还未添加完成,此操作会失败。
3h [5min,+∞)
org.zstack.header.image.APICreateRootVolumeTemplateFromRootVolumeMsg
  • 默认为3d,单位为s/m/h/d(即:秒/分/小时/天),用于设置从根云盘创建云盘镜像的超时上限。
  • 如果超过此时间,云盘镜像还未创建完成,此操作会失败。
3d [5min,+∞)
org.zstack.header.image.APICreateDataVolumeTemplateFromVolumeMsg
  • 默认为3d,单位为s/m/h/d(即:秒/分/小时/天),用于设置从数据云盘创建数据云盘镜像的超时上限。
  • 如果超过此时间,数据云盘镜像还未创建完成,此操作会失败。
3d [5min,+∞)
org.zstack.header.volume.APICreateDataVolumeFromVolumeTemplateMsg
  • 默认为3d,单位为s/m/h/d(即:秒/分/小时/天),用于设置从云盘镜像创建数据云盘的超时上限。
  • 如果超过此时间,数据云盘还未创建完成,此操作会失败。
3d [5min,+∞)
org.zstack.header.image.APICreateRootVolumeTemplateFromVolumeSnapshotMsg
  • 默认为3h,单位为s/m/h/d(即:秒/分/小时/天),用于设置从云盘快照创建根云盘镜像的超时上限。
  • 如果超过此时间,根云盘镜像还未创建完成,此操作会失败。
3h [5min,+∞)
org.zstack.header.volume.APICreateDataVolumeFromVolumeSnapshotMsg
  • 默认为3h,单位为s/m/h/d(即:秒/分/小时/天),用于设置从云盘快照创建数据云盘的超时上限。
  • 如果超过此时间,数据云盘还未创建完成,此操作会失败。
3h [5min,+∞)
org.zstack.header.volume.APICreateVolumeSnapshotMsg
  • 默认为3h,单位为s/m/h/d(即:秒/分/小时/天),用于设置创建云盘快照的超时上限。
  • 如果超过此时间,云盘快照还未创建完成,此操作会失败。
3h [5min,+∞)
org.zstack.header.vm.APICreateVmInstanceMsg
  • 默认为12h,单位为s/m/h/d(即:秒/分/小时/天),用于设置创建云主机的超时上限。
  • 如果超过此时间,云主机还未创建完成,此操作会失败。
12h [5min,+∞)
org.zstack.storage.primary.local.APILocalStorageMigrateVolumeMsg
  • 默认为1d,单位为s/m/h/d(即:秒/分/小时/天),用于设置迁移本地存储上存放的云盘的超时上限。
  • 如果超过此时间,云盘还未迁移完成,此操作会失败。
1d [5min,+∞)
org.zstack.header.storage.volume.backup.APICreateVmFromVmBackupMsg
  • 默认为1d,单位为s/m/h/d(即:秒/分/小时/天),用于设置从云主机备份创建云主机的超时上限。如果超过此时间,云主机还未创建完成,此操作会失败。
1d [5min,+∞)
CLI命令使用手册 | 4.8.38 | ZStack Cloud · ZCF | ZStack 资源中心