中断服务部署 - CancelInferDeployment
功能介绍
中断服务部署接口用于中断处于“升级中”或“部署中”状态的部署,使其快速停止。该接口适用于以下场景:当部署出现严重故障需要立即修复、资源需要快速释放以部署更高优先级的部署,或在测试环境中需要快速迭代时,用户可通过此接口中断指定部署。使用该接口的前提条件是部署当前状态为“升级中”或“部署中”,且用户具有中断部署的权限。若部署为“部署中”状态,执行中断操作,部署状态将变成“停止”,相关资源将被释放,且终端操作将被记录;若部署为“升级中”状态,执行中断操作,部署状态将变成“运行中”。若部署当前状态不是“升级中”或“部署中”,若用户无权限操作,接口将返回相应的错误信息。若部署ID无效、版本号不存在或用户无权限,则返回400 Bad Request或403 Forbidden;
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
modelarts:service:interruptDeployment
Read
service *
-
-
-
URI
POST /v2/{project_id}/services/{service_id}/deployments/{deployment_id}/interrupt
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 参数解释: 用户项目ID。获取方法请参见获取项目ID和名称。 约束限制: 不涉及。 取值范围: 账号的项目ID。 默认取值: 不涉及。 |
| service_id | 是 | String | 参数解释: 服务ID,在创建服务时即可在返回体中获取,也可通过查询服务列表获取当前用户拥有的服务,其中service_id字段即为服务ID。 约束限制: 不涉及。 取值范围: 服务ID。 默认取值: 不涉及。 |
| deployment_id | 是 | String | 参数解释: 部署ID,在添加部署时即可在返回体中获取,也可通过查询服务部署列表获取当前用户拥有的部署,其中deployment_id字段即为部署ID。 约束限制: 不涉及。 取值范围: 部署ID。 默认取值: 不涉及。 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| X-Auth-Token | 是 | String | 参数解释: 用户Token。通过调用IAM服务获取用户Token接口获取响应消息头中X-Subject-Token的值。获取方法请参见获取IAM用户Token(使用密码)。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| Content-Type | 是 | String | 参数解释: 消息体的类型(格式)。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 参数解释: 部署ID。 取值范围: 不涉及。 |
| name | String | 参数解释: 部署名称。 取值范围: 不涉及。 |
| pool_id | String | 参数解释: 资源池ID,查询指定资源池下的服务,默认不过滤。可通过查询资源池列表获取。 取值范围: 不涉及。 |
| count | Integer | 参数解释: 部署场景下,服务实例数量。 约束限制: 不涉及。 取值范围: [1, 128]。 默认取值: 不涉及。 |
| system_log_dump_enable | Boolean | 参数解释: 系统日志转储开关。 约束限制: 只有NPU资源池有,且逻辑池是没有的。 取值范围: 不涉及。 默认取值: false。 |
| unit_configs | Array of UnitConfigResponse objects | 参数解释: 推理单元配置。 |
| weight | Integer | 参数解释: 权重百分比,分配到此模型的流量权重,仅当模型部署为在线服务时需要配置。 取值范围: [0, 100]。 |
| traffic_ratio | String | 参数解释: 流量比例,单个部署实例预期接收用户的流量与总流量比值,是由流量权重配置和部署状态计算所得的值。 取值范围: 0.00%~100.00%。 |
| secret_type | String | 参数解释: 凭证类型相关配置,用户可以在此处选择使用的凭证类型(dew,agency) 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| secret_name | String | 参数解释: 凭证名称,用户使用dew类型凭证时可以在此处选择使用的凭证。 约束限制: 不涉及。 |
| priority | Integer | 参数解释: 服务优先级。 约束限制: 不涉及。 取值范围: [1, 3]。 默认取值: 不涉及。 |
| high_avail_switch | Boolean | 参数解释: 高可用开关,开启后不同实例的pod将尽量均匀分布到不同的节点上。(准备下线,请使用schedule_strategy字段) 取值范围: |
| framework | String | 参数解释: 算法框架。 取值范围: |
| version | String | 参数解释: 服务版本号,以数字及点号组成,形如1.0.1。 约束限制: 不涉及。 取值范围: 1.0.0 ~ 99.99.99,长度不超过8位。 默认取值: 不涉及。 |
| version_id | String | 参数解释: 版本id,可通过查询version列表查询。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| status | String | 参数解释: 服务当前状态。 取值范围: |
| running_count | Integer | 参数解释: 部署场景下,服务运行实例数量。 约束限制: 不涉及。 取值范围: [1, 128]。 默认取值: 不涉及。 |
| deploy_type | String | 参数解释: 部署类型。 取值范围: |
| mirror_traffic_enable | Boolean | 参数解释: 是否开启镜像流量。 取值范围: 不涉及。 |
| mirror_traffic_weight | String | 参数解释: 镜像流量权重。 取值范围: 50。 |
| version_count | Integer | 参数解释: 服务版本数量。 取值范围: 不涉及。 |
| workload_type | String | 参数解释: 工作负载类型。 取值范围: 不涉及。 |
| update_at | Long | 参数解释: 更新时间,根据更新时的当前时间自动生成。 取值范围: 毫秒级时间戳,13位数字。 |
| lts_state | String | 参数解释: 部署对接lts状态。 取值范围: |
| infer_name | String | 参数解释: 部署ID。 |
| model | InferModelResponse object | 参数解释: 模型相关配置,用户可以在此处选择模型及权重文件配合镜像使用。 约束限制: 不涉及。 |
| advanced_config | AdvancedConfig object | 参数解释: 部署高级配置。 约束限制: 不涉及。 |
| description | String | 参数解释: 部署描述。 |
| create_at | String | 参数解释: 创建时间,根据创建时的当前时间自动生成。 取值范围: 毫秒级时间戳,13位数字,如1609459200000。 |
| schedule_strategy | String | 参数解释: 调度策略。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 参数解释: 实例单元ID。 取值范围: 不涉及。 |
| name | String | 参数解释: 实例单元名称。 取值范围: 不涉及。 |
| role | String | 参数解释: 实例单元角色。 取值范围: |
| custom_spec | CustomResourceSpec object | 参数解释: 自定义资源规格配置。 |
| flavor | String | 参数解释: 资源规格,根据所提供版本选择适合业务的规格。当specification为custom时表示自定义规格。由custom_spec指定部署的规格配置。 取值范围: 不涉及。 |
| image | ImageInfoResponse object | 参数解释: 镜像配置信息,包含镜像地址,镜像来源。 |
| models | Array of InferModelResponse objects | 参数解释: 模型相关配置,用户可以在此处选择模型及权重文件配合镜像使用。 |
| files | Array of FileResponse objects | 参数解释: 模型和代码相关配置,用户可以在此处选择模型及权重文件配合镜像使用以及代码所在的obs路径等。 |
| codes | Array of CodeResponse objects | 参数解释: 代码相关配置,用户可以在此处选择代码所在的obs路径等。 |
| dumps | Array of DumpResponse objects | 参数解释: 转储相关配置,用户可以在此处选择转储的目的obs路径等。 |
| count | Integer | 参数解释: 配置实例个数。 取值范围: 不涉及。 |
| group_count | Integer | 参数解释: 单元副本数,当部署类型deploy_type为SINGLE或工作负载类型workload_type为DEPLOYMENT时,该参数无效。 取值范围: [1, 100] 或者为空。 默认取值: 默认值为1。 |
| cmd | String | 参数解释: 启动命令。 取值范围: 不涉及。 |
| envs | Map<String,String> | 参数解释: 环境变量。 |
| readiness_health | HealthResponse object | 参数解释: 就绪健康检查。 |
| startup_health | HealthResponse object | 参数解释: 启动健康检查。 |
| liveness_health | HealthResponse object | 参数解释: 存活健康检查。 |
| port | Integer | 参数解释: 端口。 取值范围: [1,65535]。 |
| recovery | String | 参数解释: 自动重建策略,开启后,由于部署配置变更或者故障等原因导致Pod重启时,平台将按策略自动执行重建。若不开启,平台将不会主动干预处理。 取值范围: |
| npu_reset_enable | Boolean | 参数解释: 是否开启恢复策略。 取值范围: |
| affinity | AffinityResponse object | 参数解释: 节点亲和调度设置。 |
| flavor_display_name | String | 参数解释: 规格展示名。仅使用切分规格部署的服务返回有此字段。 取值范围: 不涉及。 |
| termination_grace | TerminationGrace object | 参数解释: 开启后,支持设置停机时间及停机命令等,避免正在处理的请求被强制中断,从而提高系统的可用性和稳定性。 约束限制: 长度不超过255。 取值范围: - 协议范围:http/https。 - 端口范围:1-65535。 - 地址范围:仅包含字母、数字、点号(.)、中划线(-)、下划线(_)、斜杠(/)的路径,非斜杠(/)开头。 默认取值: 不涉及。 |
| security_config | ServiceSecurityConfig object | 参数解释: 启动业务容器设置信息。 取值范围: 不涉及。 |
| pool_resource_flavor | String | 参数解释: 节点池资源规格。 约束限制: 只能包含字母、数字、点、中划线和下划线。 取值范围: 长度不超过128字符。 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| gpu | Float | 参数解释: GPU个数。 约束限制: 不涉及。 取值范围: 支持配置小数,输入值不能小于0(最多支持2位小数,小数点后第3位做四舍五入处理)。 默认取值: 不涉及。 |
| memory | Integer | 参数解释: 内存,单位为MB。 约束限制: 不涉及。 取值范围: 仅支持整数。 默认取值: 不涉及。 |
| cpu | Float | 参数解释: CPU核数。 约束限制: 不涉及。 取值范围: 支持配置小数,输入值不能小于0.01(最多支持2位小数,小数点后第3位做四舍五入处理)。 默认取值: 不涉及。 |
| ascend | Integer | 参数解释: Ascend芯片个数。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| arch | String | 参数解释: 架构类型。 约束限制: 不涉及。 取值范围: 枚举值:x86\arm64。 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 参数解释: 镜像id。 取值范围: 不涉及。 |
| source | String | 参数解释: 镜像类别,标识镜像来源。 取值范围: |
| swr_path | String | 参数解释: 镜像地址,source不同取值时,地址为不同值。 取值范围: 不涉及。 |
| category | String | 参数解释: 镜像支持的规格。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| source | String | 参数解释: 代码来源类别。 约束限制: 不涉及。 取值范围: 如下参数不区分大小写 默认取值: 不涉及。 |
| address | String | 参数解释: 代码来源地址,格式遵循不同存储系统。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| source_id | String | 参数解释: 来源ID。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| mount_path | String | 参数解释: 挂载到容器内的路径,要求以/开头,后面可包含中划线、反斜杠、下划线、点号、字母、数字。 约束限制: 不涉及。 取值范围: 以(/)开头和结尾,可包含字母、数字、中划线、下划线,整个挂载路径长度不能超过255位。 默认取值: 不涉及。 |
| host_cache | Boolean | 参数解释: 是否支持模型本地缓存,默认是不支持。 约束限制: 不涉及。 取值范围: 默认取值: false。 |
| efs_sub_path | String | 参数解释: 当存储类别为EFS时,支持配置子目录。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| read_only | Boolean | 参数解释: 挂载权限设置,是否只读。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| os_warm_up | Boolean | 参数解释: OS预热。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| source_name | String | 参数解释: 预热名称。 约束限制: os_warm_up为true时必填。 取值范围: 支持1-64位字符,可包含字母、中文、数字、中划线、下划线。 默认取值: 不涉及。 |
| asset_id | String | 参数解释: 预置资产id。 约束限制: 使用预置资产时必填。 取值范围: 支持1-64位字符,可包含字母、中文、数字、中划线、下划线。 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| source | String | 参数解释: 代码来源类别。 取值范围: |
| address | String | 参数解释: 代码来源地址,格式遵循不同存储系统。 取值范围: 不涉及。 |
| mount_path | String | 参数解释: 挂载到容器内的路径。 约束限制: 不涉及。 取值范围: 以(/)开头和结尾,可包含字母、数字、中划线、下划线,整个挂载路径长度不能超过255位。 默认取值: 不涉及。 |
| host_cache | Boolean | 参数解释: 是否支持模型本地缓存,默认是不支持。 取值范围: |
| efs_sub_path | String | 参数解释: 当存储类别为EFS时,支持配置子目录。 取值范围: 不涉及。 |
| read_only | Boolean | 参数解释: 挂载权限设置,是否只读。 取值范围: |
| os_warm_up | Boolean | 参数解释: OS预热。 取值范围: |
| source_name | String | 参数解释: 预热名称。 约束限制: os_warm_up为true时必填。 取值范围: 支持1-64位字符,可包含字母、中文、数字、中划线、下划线。 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| source | String | 参数解释: 代码来源类别。 取值范围: |
| address | String | 参数解释: 代码来源地址,格式遵循不同存储系统。 取值范围: 不涉及。 |
| source_id | String | 参数解释: 代码来源ID,与address二选一,当且仅当source为EFS时,可以传入sfs turbo的ID。 取值范围: 不涉及。 |
| mount_path | String | 参数解释: 挂载到容器内的路径。 约束限制: 不涉及。 取值范围: 以(/)开头和结尾,可包含字母、数字、中划线、下划线,整个挂载路径长度不能超过255位。 默认取值: 不涉及。 |
| efs_sub_path | String | 参数解释: EFS子路径。 取值范围: 不涉及。 |
| read_only | Boolean | 参数解释: 挂载权限设置, 是否只读。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| source | String | 参数解释: 用户转储来源类别。 取值范围: |
| address | String | 参数解释: 用户转储来源地址,格式遵循不同存储系统。 取值范围: 不涉及。 |
| mount_path | String | 参数解释: 挂载到容器内的路径,要求以/开头,后面可包含中划线,反斜杠,下划线,点号,字母,数字。 取值范围: 不涉及。 |
| type | String | 参数解释: 转储类型。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| check_method | String | 参数解释: 健康检查方式:HTTP 或者 EXEC(命令行)。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| cmd | String | 参数解释: 当健康检查方式为EXEC时,配置的命令行。 约束限制: 字符长度限制[0, 1024],不能包含字符:#~^$|%&*<>()'"[]{} 取值范围: 不涉及。 默认取值: 不涉及。 |
| url | String | 参数解释: 当健康检查方式为HTTP 时,配置的请求地址。 约束限制: 字符长度限制[0, 1024],首字符为/,后续字符可以是:字母 数字 中划线 下划线 / : 取值范围: 不涉及。 默认取值: 不涉及。 |
| protocol | String | 参数解释: 连接协议。默认HTTP。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| initial_delay_seconds | Integer | 参数解释: 执行首次探测时,应该等待的时间,默认30秒,最小1秒。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 默认值为30。 |
| timeout_seconds | Integer | 参数解释: 执行探测的超时时间,默认30秒,最小1秒。 约束限制: 不涉及。 取值范围: 最小值为1秒。 默认取值: 默认值为30秒。 |
| period_seconds | Integer | 参数解释: 执行健康检查的周期时间,执行探测的频率。默认是10秒,最小1秒。 约束限制: 不涉及。 取值范围: 最小值为1秒。 默认取值: 默认值为10秒。 |
| failure_threshold | Integer | 参数解释: 探测成功后,至少连续探测失败多少次才被认定为失败。默认是3。最小值是1。 约束限制: 不涉及。 取值范围: 最小值为1。 默认取值: 默认值为3。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| affinity_type | String | 参数解释: 节点亲和类型。 取值范围: |
| required | Boolean | 参数解释: 是否设置强亲和。 取值范围: |
| selection_mode | String | 参数解释: 选择节点方式。 取值范围: IP。 |
| targets | Map<String,String> | 参数解释: 通过上述方式选择的列表,长度不能超过20。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| pre_stop_cmd | String | 参数解释: 停机命令在容器收到停止信号时触发,但必须在停机时间的宽限期内完成,否则容器会被强制停止。您可以通过该命令精细化操作,如关闭数据库连接、释放文件句柄、停止子进程等。 约束限制: 长度不超过255。 取值范围: 默认取值: 不涉及。 |
| termination_grace_period_seconds | Integer | 参数解释: 该参数表示 Pod 收到停止信号到强制停止的最大时间窗口,用于 Pod 执行清理操作(如关闭连接、释放资源、保存状态等)。 约束限制: 长度不超过255。 取值范围: 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| user_id | Long | 参数解释: 启动业务容器时设置的user_id,默认可为空。 取值范围: [1, 60000]。 |
| group_id | Long | 参数解释: 启动业务容器时设置的group_id,默认可为空。 取值范围: [1, 60000]。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| deploy_timeout_minutes | String | 参数解释: 部署超时时间 |
| upgrade_config | UpgradeConfig object | 参数解释: 滚动升级配置 |
| service_secret | ServiceSecret object | 参数解释: 服务密钥 |
| dynamic_routing_enable | Boolean | 参数解释: 智能路由开关 |
| strategy | String | 参数解释: 智能路由策略 |
| ems_enable | Boolean | 参数解释: EMS加速开关 |
| metric_api_scheme | String | 参数解释: 智能路由指标采集scheme |
| metric_api_port | String | 参数解释: 智能路由指标采集端口 |
| metric_api_path | String | 参数解释: 智能路由指标采集地址 |
| custom_metrics_path | String | 参数解释: 自定义监控采集指标地址 |
| port | Integer | 参数解释: 容器端口 |
| protocol | String | 参数解释: 容器请求协议。当选择WSS与WS时,服务接口会升级为WebSocket。开启WebSocket时,不支持同时设置“服务流量限制”。 取值范围: |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| type | String | 参数解释: 升级类型。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| rolling_update | RollingUpdate object | 参数解释: 滚动更新配置。 约束限制: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| max_surge | String | 参数解释: 滚动更新时最多可以启动多少个Pod。 约束限制: 百分数类型字符串。 取值范围: 1%-100%。 默认取值: 1%。 |
| max_unavailable | String | 参数解释: 滚动更新时最多可以删除多少个Pod。 约束限制: 百分数类型字符串。 取值范围: 1%-100%。 默认取值: 1%。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| secret_enable | Boolean | 参数解释: 是否启用密钥。 约束限制: 不涉及。 取值范围: 默认取值: false。 |
| secret_type | String | 参数解释: 密钥类型。 约束限制: 不涉及。 取值范围: 默认取值: 不涉及。 |
| secret_volumes | Array of SecretVolume objects | 参数解释: 密钥挂载。 约束限制: 上限30个。 |
| group_enable | Boolean | 参数解释: 是否启用镜像的用户组。 约束限制: 不涉及。 取值范围: 默认取值: false。 |
| group_id | Long | 参数解释: 镜像的用户组ID。 约束限制: 不涉及。 取值范围: 1000~4294967294。 默认取值: 不涉及。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| secret_name | String | 参数解释: 密钥名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
| secret_key | String | 参数解释: 密钥key。 约束限制: 匹配一个长度在1到63之间的字符串,只能包含字母、数字、点、下划线和连字符,并且不能以两个连续的点(..)开头。 取值范围: 不涉及。 默认取值: 不涉及。 |
| secret_value | String | 参数解释: 密钥值。 约束限制: 长度在1~32768,Base64编码后的密钥值。 取值范围: 不涉及。 默认取值: 不涉及。 |
| mount_path | String | 参数解释: 挂载路径。 约束限制: 不涉及。 取值范围: 以(/)开头和结尾,可包含字母、数字、中划线、下划线,整个挂载路径长度不能超过255位。 默认取值: 不涉及。 |
请求示例
中断指定的在线服务部署。
POST https://{endpoint}/v2/{project_id}/services/{service_id}/deployments/{deployment_id}/interrupt 响应示例
状态码:200
中断指定的在线服务部署。
{
"count" : 1,
"framework" : "COMMON",
"id" : "8a927efb-43f6-4a0b-8222-a1b87d2d2fa8",
"name" : "deployment-example",
"description" : "infer-description",
"pool_id" : "pool-xinfer-1216-dev-04f258c84780d5a52f3bc00dc15aa5e7",
"priority" : 1,
"unit_configs" : [ {
"codes" : [ ],
"count" : 1,
"custom_spec" : {
"cpu" : 0.1,
"memory" : 50
},
"envs" : {
"additionalProp1" : "string",
"additionalProp2" : "string",
"a" : "1"
},
"id" : "8a0e4ab7970bc24d01970bcd7f460003",
"image" : {
"category" : "CPU",
"id" : "bc84b0e49e910cd7918b1dfaeaa478f9c7e5242c6733525ca88304f026fa24e4",
"source" : "SWR",
"swr_path" : "swr.cn-north-7.myhuaweicloud.com/example/helloworld-example:0.0.1"
},
"npu_reset_enable" : false,
"port" : 65535,
"role" : "COMMON"
} ],
"weight" : 100,
"version" : "0.0.0",
"status" : "DEPLOYING"
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | 中断指定的在线服务部署。 |
错误码
请参见错误码。