更新时间:2026-04-15 GMT+08:00
分享

部署异步在线服务

在AI生成内容(AIGC)及复杂计算任务(如高清图像处理、长视频解析)广泛应用的业务场景中,传统同步请求-响应模式面临显著挑战:客户端需长时间等待任务完成易导致网络超时中断,服务端则因瞬时高并发请求承受巨大压力,且计算资源(如GPU)因同步等待产生空闲浪费。此类场景下,如何实现任务提交与结果获取的解耦,同时保障系统高可用性与资源高效利用成为关键问题。

ModelArts支持构建以"任务"为核心的异步推理服务,提供标准化接口实现任务异步提交、状态查询及结果获取,将长任务从同步阻塞流程中剥离,通过任务队列机制实现资源动态调度与负载均衡,从而在提升系统吞吐量与稳定性的同时,显著优化用户体验并降低单位计算成本。

本章节主要介绍如何在ModelArts部署模型为异步在线服务,并对部署成功的在线服务进行调用。如果是视频推理、大视频文件等,请按照本章节的指导,选择部署异步在线服务并调用。如果是图片、较小视频文件需要同步返回结果,请选择部署同步在线服务

前提条件

  • 已按照准备工作完成数据准备。
  • 由于在线运行需消耗资源,确保账户未欠费。

注意事项

针对使用资源池部署的在线服务,服务处于“异常”“停止”等状态时,也占用配额资源。如果发现配额不足,无法部署更多服务时,可先删除部分异常服务释放资源。

  • 配额计算:

    使用专属池部署在线服务不会再扣减配额,仅在创建/变更/删除专属池时增加或减少配额。

  • 计量计算:

    使用专属池部署在线服务不会被计量,只计量它所属的专属资源池的数据。

  • SFS Turbo挂载:

    在线服务使用SFS Turbo挂载时需要有预置操作,打通SFS Turbo所在VPC和专属资源池网络

部署异步在线服务

  1. 登录ModelArts管理控制台,在左侧导航栏中选择“模型推理 > 在线推理”,默认进入“在线推理”列表。
  2. “在线服务”列表中,单击“部署服务”
  3. 进入服务部署页面,配置如下关键参数,其他参数说明请见部署在线服务-服务信息
    表1 异步服务信息参数说明

    参数

    子参数

    说明

    基本信息

    服务调用模式

    选择“异步调用”服务创建后,调用模式不支持修改。

    单服务最大任务数

    单个服务所能创建的最大任务数。范围为0-10000。任务状态为succeeded、failed、created_failed、start_failed、upgrade_failed、timeout、deleted均不占用任务配额数量。任务状态可通过调用“查看任务详情”API获取。

    网络配置

    服务协议

    异步推理服务可选协议:HTTPS、HTTP。

    异步服务当前不支持镜像流量。

    更多配置

    • 外网访问:在线服务是否允许外网访问。开启后允许外网访问服务,调用URL请在服务详情页查看在线服务调用信息。关闭后,不允许通过互联网访问在线服务。
    • 内网接入免审批:在线服务内网连接是否需要审批。

      开启后,三方用户的内网接入申请自动生效,无需审批。关闭后,需要审批。内网访问服务请参见通过内网访问在线服务

    • 访问管控:勾选后,可指定白名单或黑名单进行访问管控。

      白名单:仅允许匹配的用户IP进行访问,最多支持添加10个正则表达式。

      黑名单:仅不允许匹配的用户IP进行访问,最多支持添加10个正则表达式。

    高可用配置

    更多配置

    • 请求大小限制(M):单个服务的请求大小限制,请求大小范围:1~50。单位:M。
    • 请求超时时间(秒):服务预测请求超时时间。输入值必须在1到1200之间。单位:秒。
  4. 单击“下一步”,进行服务部署配置。关键参数如下,其他参数说明详情请见部署在线服务-部署配置
    表2 异步服务部署参数说明

    参数

    子参数

    说明

    资源配置

    单副本最大任务并发数

    “服务调用模式”选择“异步调用”需要设置此参数。

    单个副本可同时处理的任务上限,取值范围为:1-100,只要任务没有从副本容器中删除掉,均会占用该配额。

  5. 单击“下一步”,在“部署在线服务>确认配置”页面,确认配置信息无误后,单击“确认部署”

    部署服务一般需要运行一段时间,根据您选择的数据量和资源不同,部署时间将耗时几分钟到几十分钟不等。

    您可以前往在线服务列表,查看在线服务的基本情况。在线服务列表中,刚部署的服务“状态”“部署中”,当在线服务的“状态”变为“运行中”时,表示服务部署完成。

    在线服务部署完成后,将立即启动。服务状态为“运行中”,“告警”状态下正常运行实例正在产生费用,不使用时,请及时停止。

访问异步在线服务地址

ModelArts管理控制台左侧导航栏中选择“模型推理 > 在线推理”,默认进入“在线推理”列表,单击目标服务的操作列的“服务调用”,查看调用信息。

表3 异步在线服务调用信息

类型

URL格式

URL示例

POST (创建任务)

https://{公网调用地址}/v2/async-infer/{服务ID}

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks

DELETE (删除任务)

https://{公网调用地址}/v2/async-infer/{服务ID}/{task_id}

task_id:创建任务后返回。

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks/{task_id}

GET (获取任务列表)

https://{公网调用地址}/v2/async-infer/{公网调用地址}/tasks

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks

PUT (更新任务)

https://{公网调用地址}/v2/async-infer/{公网调用地址}/tasks/{task_id}

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks/{task_id}

GET (查询任务详情)

https://{公网调用地址}/v2/async-infer/{公网调用地址}/tasks/{task_id}

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks/{task_id}

POST (启动任务)

https://{公网调用地址}/v2/async-infer/{公网调用地址}/tasks/{task_id}/start

task_id:创建任务后返回。

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks/{task_id}/start

POST (停止任务)

https://{公网调用地址}/v2/async-infer/{公网调用地址}/tasks/{task_id}/stop

task_id:创建任务后返回。

https://100.XX.XXX.XXX/v2/async-infer/testxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/tasks/{task_id}/stop

调用异步在线服务

异步调用服务部署成功后,可以进入服务详情页面的调用页面,做简单的业务功能验证。服务调用页面提供简易的rest客户端功能,用户可以选择自己服务指定的请求方法,填写自己的预测路径。

在Params栏中,可以填写task_id等路径参数,也可以填写查询任务列表的limit、offset和status参数。

在Body栏中,选择对应的数据格式raw,用于发送原始文本数据,遵循接口规范,需要保证JSON格式正确。

在Headers中可以填写Header信息,比如api-key鉴权信息,将{API Key}替换为自己的API Key等。单击“调用”发送对应的调用请求。

如果删除Authorization 键值对,系统将自动切换为 IAM Token 认证。

预测页面的Body和请求头填写可参考ModelArts在线服务处于运行中时,如何填写request header和request body

图1 调用异步在线服务

异步服务的状态会影响任务接口的调用。服务状态为“运行中”,“告警”,“升级中”,“异常”状态下才能够创建、更新、启动、停止任务,服务不处于“已删除”状态,均可以调用查询任务详情、查询任务列表、删除任务接口。

使用CloudShell调试在线服务实例容器

允许用户使用ModelArts控制台提供的CloudShell登录运行中在线服务实例容器。

只支持专属资源池部署的在线服务使用CloudShell访问容器。

  1. 登录ModelArts控制台,左侧菜单选择“模型推理 > 在线推理”。
  2. 在线服务列表页面单击“名称/ID”,进入在线服务详情页面。
  3. 单击CloudShell页签,选择部署、实例和Pod节点,当连接状态变为连接成功时,即登录实例容器成功。

    如果遇到异常情况服务器主动断开或超过10分钟未操作自动断开,此时可单击“重新连接”重新登录实例容器。
    图2 CloudShell界面

    部分用户登录Cloud Shell界面时,可能会出现路径显示异常情况,此时在Cloud Shell中单击回车键即可恢复正常。
    图3 路径异常

  4. 登录实例容器成功后,在容器的终端环境执行所需的调试命令。例如:

    以下仅为示例,实际日志路径和服务状态检查方法和服务配置有关,以镜像和容器启动命令为准。

    查看日志:

    tail -f /var/log/app.log

    检查服务状态:

    systemctl status app

    执行自定义脚本:

    ./debug_script.sh

  5. 完成调试后,使用以下命令退出容器:

    exit

    返回CloudShell终端后,您可以查看调试结果或日志文件。

删除服务

如果服务不再使用,您可以删除服务释放资源。

  • 没有委托授权时,无法删除服务。
  • 删除服务时,推荐同时删除LTS中的日志以及日志流,避免LTS日志流超过限额产生额外费用,如后续不再使用,建议删除。

删除操作无法恢复,请谨慎操作。

登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理 > 在线推理”,进入在线推理管理页面。
  • 单击在线服务列表“操作”列的“更多>删除”,在弹框中一键输入DELETE,单击“确定”,删除服务。
  • 勾选在线服务列表中的服务,然后单击列表左上角“删除”按钮,在弹框中一键输入DELETE,单击“确定”,批量删除服务。
  • 单击目标服务名称,进入服务详情页面,单击右上角“删除”,在弹框中一键输入DELETE,单击“确定”,删除服务。

相关文档