在ModelArts Studio(MaaS)启动/停止/删除服务
停止/启动部署服务
只有服务处在排队中、启动中、运行中、部署中、告警状态,才可执行停止操作;只有服务处在部署失败、已停止状态,才可执行启动操作。
- 停止部署服务
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“在线推理”。
- 在“在线推理”页面,单击“我的服务”页签,在目标服务右侧,单击操作列的“停止”。
- 在“停止服务”对话框,单击“确定”。
- 启动部署服务
- 在“在线推理”页面,单击“我的服务”页签,在目标服务右侧,单击操作列的“启动”。
- 在“启动服务”对话框,仔细阅读提示信息,单击“确定”。
服务状态为运行中时会产生费用。
定时启停部署服务
华东二和华北-乌兰察布一支持通过FunctionGraph控制台实现定时启停,西南-贵阳一支持调用接口实现启停,请您按需选择以下步骤。
华东二和华北-乌兰察布一:
- 创建rf_admin_trust委托和IAM Agency Management FullAcces策略,为rf_admin_trust委托添加IAM Agency Management FullAcces策略。具体操作,请参见准备工作。
- 获取ModelArts Studio模型服务ID。
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“在线推理”。
- 在“在线推理”页面,单击“我的服务”页签,然后单击目标服务名称。
- 在“服务详情”页面,获取服务ID。
图1 获取服务ID
- 登录华为云解决方案实践,在文本框搜索定时开关机,在“定时开关机”卡片,单击“一键部署”,跳转至“立即创建资源栈”页面,在顶部导航栏选择目标区域,进行定时开关机相关配置。具体操作,请参见快速部署。
关于如何查看函数、编辑环境变量、查看执行日志的具体操作,请参见开始使用。
图2 一键部署定时开关机 - 消息通知服务SMN会自动发送受邀订阅主题链接的短信,您可以单击访问链接,使用浏览器打开即可确认订阅。
- (可选)如果不需要定时启停功能,可以进行卸载。具体操作,请参见快速卸载。
西南-贵阳一:
MaaS支持调用接口实现启停功能,适用于需要通过停止不使用的实例并在需要使用实例时自动启动实例,来帮助降低运营成本的场景。您可以参考以下示例代码,按需修改相关参数,创建自己的启停任务。
- 通过IAM获取token和project_id。
- 关于如何获取token,请参见获取IAM用户Token(使用密码)。
- 关于如何获取project_id,请参见获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。
- 获取ModelArts Studio模型服务ID(maas_server_id)。
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“在线推理”。
- 在“在线推理”页面,单击“我的服务”页签,然后单击目标服务名称。
- 在“服务详情”页面,获取服务ID。
图3 获取服务ID
- 使用以下代码示例,调用get_server和post_server方法。
- get_server方法:用于确认ModelArts服务状态。通过调用该方法,可以获取指定服务的当前状态。
- post_server方法:用于控制ModelArts服务状态。通过指定操作类型(action_type),可以对服务进行启动或停止操作。action_type参数说明如下:
- restart:重启服务。
- terminate:停止服务。
代码示例如下,请您根据实际情况进行修改。{token}、{project_id}、{maas_server_id}请替换为前两个步骤获取的值。
import http.client import json import traceback def get_server(project_id, maas_server_id, token): //用于确认ModelArts服务状态。通过调用该方法,可以获取指定服务的当前状态。 try: conn = http.client.HTTPSConnection(f"modelarts.cn-southwest-2.myhuaweicloud.com") headers = {'X-Auth-Token': f"{token}"} conn.request("GET", f"/v1/{project_id}/maas/services/{maas_server_id}", None, headers) res = conn.getresponse() status = res.read().decode("utf-8") print("status", status) except Exception: print("Failed to create service," f"exception: {traceback.format_exc()}") def post_server(project_id, maas_server_id, token, action_type): //用于控制ModelArts服务状态。通过指定操作类型(action_type),可以对服务进行启动或停止操作。 try: conn = http.client.HTTPSConnection("modelarts.cn-southwest-2.myhuaweicloud.com") headers = {'X-Auth-Token': f"{token}", 'Content-Type': 'application/json'} body = json.dumps({ "action_type": action_type //restart:重启服务;terminate:停止服务。 }) conn.request("POST", f"/v1/{project_id}/maas/services/{maas_server_id}", body, headers) res = conn.getresponse() status = res.read().decode("utf-8") print("status", status) except Exception: print("Failed to create service," f"exception: {traceback.format_exc()}")
在get_server方法中,通过GET请求获取服务状态。状态信息存储在status变量中,并通过print("服务状态:", status)输出。服务状态反映了服务的当前运行情况,以下是所有可能的状态:- Creating:创建中
- Initing:初始化中
- Pending:等待中
- Waiting:等待中
- Deploying:部署中
- Running:运行中
- Concerning:关注中
- Failed:失败
- Completed:已完成
- Terminating:终止中
- Terminated:已终止
- Deleting:删除中
- Deleted:已删除
- Unknown:未知
- Abnormal:异常
- Restarting:重启中
- Upgrade:升级
- Scale:扩缩容
删除部署服务
删除操作无法恢复,请谨慎操作。
- 登录ModelArts Studio(MaaS)控制台,在顶部导航栏选择目标区域。
- 在左侧导航栏,选择“在线推理”进入服务列表。
- 选择“我的服务”页签。
- 选择待删除的服务,单击操作列的“更多 > 删除”,在弹窗中输入“DELETE”,单击“确定”,删除服务。