华为云AI开发平台ModelArts访问在线服务(VPC高速访问通道)_云淘科技

背景说明

访问在线服务的实际业务中,用户可能会存在如下需求:

高吞吐量、低时延
TCP或者RPC请求

因此,ModelArts提供了VPC直连的高速访问通道功能以满足用户的需求。

使用VPC直连的高速访问通道,用户的业务请求不需要经过推理平台,而是直接经VPC对等连接发送到实例处理,访问速度更快。

由于请求不经过推理平台,所以会丢失以下功能:

认证鉴权

流量按配置分发
负载均衡
告警、监控和统计

图1 VPC直连的高速访问通道示意图

准备工作

使用专属资源池部署在线服务,服务状态为“运行中”。

需使用新版专属资源池部署服务,详情请参见ModelArts资源池管理功能全面升级。
只有专属资源池部署的服务才支持VPC直连的高速访问通道。
VPC直连的高速访问通道,目前只支持访问在线服务。
因流量限控,每个主帐号租户调用次数不超过2000次/分钟,每个子帐号租户不超过20次/分钟。
目前仅支持自定义镜像导入模型,部署的服务支持高速访问通道。

操作步骤

使用VPC直连的高速访问通道访问在线服务,基本操作步骤如下:

将专属资源池的网络打通VPC
VPC下创建弹性云服务器
获取在线服务的IP和端口号
通过IP和端口号直连应用

将专属资源池的网络打通VPC

登录ModelArts控制台,进入“专属资源池 > 弹性集群”找到服务部署使用的专属资源池,单击“名称/ID”,进入资源池详情页面,查看网络配置信息。返回专属资源池列表,选择“网络”页签,找到专属资源池关联的网络,打通VPC。打通VPC网络后,网络列表和资源池详情页面将显示VPC名称,单击后可以跳转至VPC详情页面。

图2 查找专属资源池

图3 查看网络配置

图4 打通VPC

VPC下创建弹性云服务器

登录弹性云服务器ECS控制台,单击右上角“购买弹性云服务器”,进入购买弹性云服务器页面,完成基本配置后单击“下一步:网络配置”,进入网络配置页面,选择1中打通的VPC,完成其他参数配置,完成高级配置并确认配置,下发购买弹性云服务器的任务。等待服务器的状态变为“运行中”时,弹性云服务器创建成功。单击“名称/ID”,进入服务器详情页面,查看虚拟私有云配置信息。

图5 购买弹性云服务器时选择VPC

获取在线服务的IP和端口号

可以通过使用图形界面的软件(以Postman为例)获取服务的IP和端口号,也可以登录弹性云服务器(ECS),创建Python环境运行代码,获取服务IP和端口号。

API接口:

GET /v1/{project_id}/services/{service_id}/predict/endpoints?type=host_endpoints

方式一:图形界面的软件获取服务的IP和端口号

图6 接口返回示例

方式二:Python语言获取IP和端口号

Python代码如下,下述代码中以下参数需要手动修改:

project_id:用户项目ID,获取方法请参见获取项目ID和名称。
service_id:服务ID,在服务详情页可查看。
REGION_ENDPOINT:服务的终端节点,查询请参见终端节点。

def get_app_info(project_id, service_id):
    list_host_endpoints_url = "{}/v1/{}/services/{}/predict/endpoints?type=host_endpoints"
    url = list_host_endpoints_url.format(REGION_ENDPOINT, project_id, service_id)
    headers = {'X-Auth-Token': X_Auth_Token}
    response = requests.get(url, headers=headers)
    print(response.content)

通过IP和端口号直连应用

登录弹性云服务器(ECS),可以通过Linux命令行访问在线服务,也可以创建Python环境运行Python代码访问在线服务。schema、 ip、port参数值从从3获取。

执行命令示例如下,直接访问在线服务。

curl --location --request POST 'http://192.168.205.58:31997' \
--header 'Content-Type:  application/json' \
--data-raw '{"a":"a"}'

图7 访问在线服务

创建Python环境,运行Python代码访问在线服务。

def vpc_infer(schema, ip, port, body):
    infer_url = "{}://{}:{}"
    url = infer_url.format(schema, ip, port)
    response = requests.post(url, data=body)
    print(response.content)

由于高速通道特性会缺失负载均衡的能力,因此在多实例时需要自主制定负载均衡策略。

父主题: 访问方式

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家