EAS官方SDK提供Java、Python、Golang三种语言版本,是VPC高速直连场景下推荐的服务调用方式。本文介绍SDK的适用场景、调用原理与通用排查思路,帮助您在引入SDK前理解其工作机制。
适用场景
EAS官方SDK的典型适用场景是VPC高速直连。该场景下使用SDK可省去自行实现服务发现、负载均衡的工作量。
其他调用方式(如通过共享网关或专属网关)通常使用标准HTTP客户端即可,无需引入SDK。
不同调用方式的选型判定,请参见服务调用。
调用原理
SDK支持网关访问和VPC高速直连两种Endpoint类型,请求路由方式有差异,但调用流程一致,均包含以下三个阶段:
初始化客户端:创建
PredictClient,设置Endpoint、服务名、Token(可在EAS控制台的服务详情页获取),调用init()完成初始化。构造请求:根据服务的输入输出格式构造Request对象(如
StringRequest、TFRequest、TorchRequest等)。请求类型必须与服务端要求一致。使用Processor部署的服务,各Processor对应的请求类型请参见Processor部署。发起调用:调用
predict()发送请求并接收响应。SDK自动完成Token签名、失败重试(默认5次)和响应反序列化,无需用户介入。
VPC高速直连场景下,官方SDK封装了服务发现和负载均衡的逻辑,详情请参见VPC高速直连-官方SDK调用。
除上述同步推理调用外,SDK还提供队列服务调用方式:
通过
QueueClient将请求异步推入输入队列,由服务端消费并将结果写入输出队列。客户端通过订阅(watch)方式接收结果。
该调用方式适用于异步推理、长任务等场景,调用流程与上述同步推理不同,具体使用方式请参见各语言SDK文档中的相关示例。
调用异常排查
SDK调用出现异常时,建议按"客户端 → 网络 → 服务端"的顺序逐层排查。常见问题分类及排查方向如下:
鉴权类(401 / 403):检查Token是否正确传入、是否与目标服务匹配、是否在控制台被重置。
路由类(404):检查Endpoint和服务名是否与EAS服务详情页一致;如果使用VPC高速直连,确认服务发现是否正常拉取到实例列表。
连接类(connection refused / timeout / DNS解析失败):检查客户端与服务端是否在同一VPC、安全组规则是否放通、Endpoint域名是否可解析。
服务端类(5xx / 返回为空 / 返回格式异常):需结合服务日志定位。
完整的服务状态码、典型错误信息和处理建议,请参见附录:服务状态码与常见报错。