访问在线服务

认证方式

在线服务的状态处于“运行中”,则表示在线服务已部署成功,部署成功的在线服务,将为用户提供一个可调用的API,此API为标准Restful API。在集成至生产环境之前,需要对此API进行调测。

当前ModelArts支持访问在线服务的认证方式有以下几种:

  • 访问在线服务(Token认证)
  • 访问在线服务(AK/SK认证)
  • 访问在线服务(APP认证)

在线服务调用地址

访问在线服务,通过Token认证、AK/SK认证和APP认证时,需要获取在线服务的调用地址。您可以在ModelArts管理控制台的“在线服务详情 > 调用指南”页面,查看API接口公网地址,获取输入参数信息。当模型配置文件中apis定义了路径,调用地址后需拼接自定义路径。如:“{在线服务的调用地址}/predictions/poetry”。

访问在线服务(Token认证)

使用Token认证,需要用户提前获取Token。用户Token的获取请参见获取Token认证。获取Token认证时,由于ModelArts生成的在线服务API不支持domain范围的token,因此需获取使用范围为project的Token信息,即scope参数的取值为project。

预测文件的本地路径既可使用绝对路径(如Windows格式"D:/test.png",Linux格式"/opt/data/test.png"),也可以使用相对路径(如"./test.png")。

您可以使用以下方式向在线服务发起预测请求:

  • 方式一:使用图形界面的软件进行预测。Windows系统建议使用Postman。
  • 方式二:使用curl命令发送预测请求。Linux系统建议使用curl命令。
  • 方式三:使用Python语言发送预测请求。
  • 方式四:使用Java语言发送预测请求。

访问在线服务(AK/SK认证)

使用AK/SK认证时,您可以通过APIG SDK 访问,也可以通过ModelArts SDK 访问。使用ModelArts SDK 访问参见用户AK-SK认证模式

这里介绍如何通过APIG SDK访问在线服务,具体操作流程如下:

1、获取AK/SK。您可以登录管理控制台,单击右上角的用户名,在下拉列表中单击“我的凭证”,单击“访问密钥”,单击“新增访问密钥”,进入“身份验证”页面,根据提示完成身份验证,下载密钥。请妥善保管您的秘钥。

2、获取在线服务信息。在“在线服务”的详情页面,获取该服务的调用地址和输入参数信息。

3、发送预测请求:

  • 方式一:使用Python语言发送预测请求
  • 方式二:使用Java语言发送预测请求

访问在线服务(APP认证)

部署在线服务支持开启APP认证,即ModelArts会为服务注册一个支持APP认证的接口,为此接口配置APP授权后,用户可以使用授权应用的AppKey+AppSecret或AppCode调用该接口。

针对在线服务的APP认证,具体操作流程如下:

1、开启支持APP认证功能:开启支持APP认证并创建应用。

2、在线服务授权管理:对创建的应用进行管理,包括查看、重置或删除应用,绑定或解绑应用对应的在线服务,获取“AppKey/AppSecret”或“AppCode”。

3、APP认证鉴权:调用支持APP认证的接口需要进行认证鉴权,支持两种鉴权方式(AppKey+AppSecret或AppCode),您可以选择其中一种进行认证鉴权。

4、发送预测请求:

  • 方式一:使用Python语言通过AppKey+AppSecret认证鉴权方式发送预测请求
  • 方式二:使用Java语言通过AppKey+AppSecret认证鉴权方式发送预测请求
  • 方式三:使用Python语言通过AppCode认证鉴权方式发送预测请求
  • 方式四:使用Java语言通过AppCode认证鉴权方式发送预测请求

访问在线服务常见问题

访问在线服务常见问题

  • 在线服务的API接口组成规则是什么?

    在ModelArts服务中,AI应用部署成在线服务后,用户可以获取API接口用于访问推理。

    https://域名/版本/infer/服务ID

  • 自定义镜像导入模型部署上线调用API报错

    ModelArts部署上线调用API报错,排查项如下:

    1、确认配置文件模型的接口定义中有没有POST方法。

    2、确认配置文件里url是否有定义路径。例如:“/predictions/poetry”(默认为“/”)。

    3、确认API调用中body体中的调用路径是否拼接自定义路径。如:“{API接口地址}/predictions/poetry”。

  • 作为调用发起方的客户端无法访问已经获取到的推理请求地址

    问题现象:ModelArts完成在线服务部署且服务处于“运行中”状态后,已经通过调用指南页面的信息获取到调用的server端地址,但是调用发起方的客户端访问该地址不通,出现无法连接、域名无法解析的现象。

    原因分析:调用指南页签中显示的调用地址都是华为云APIG(API网关服务)的地址。调用发起方的客户端和华为云网络不通。

    处理方法:如果客户端位于华为云网络之外,保证客户端所处的网络环境可以连接Internet;如果客户端位于华为云网络内,默认的网络配置即可以访问通这个地址,避免设置特殊的网络配置,例如防火墙规则等。

  • ModelArts访问在线服务请求超时返回Timeout

    请求超时,大概率是APIG(API网关)拦截问题。需排查APIG(API网关)和模型。

    优先排查APIG(API网关)是否是通的,可以在本地使用curl命令排查,命令行:curl -kv {预测地址}。如返回Timeout则需排查本地防火墙,代理和网络配置。

    检查模型是否启动成功或者模型处理单个消息的时长。因APIG(API网关)的限制,模型单次预测的时间不能超过40S,超过后系统会默认返回Timeout错误。